时间字符串格式化

  

  字符串为 ‘2017-5-11 10:10:00‘,正则 reg=/^(\d{4})[-/](\d{1,2})[-/](\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})$/g;

  此正则代表通过若干个分组小正则,对字符串进行匹配,从左到右进行,首先匹配4个数字,[-/]代表-或/中的任意一个,再进行第二个分组匹配,由于是月份,所以匹配1、2个数字,日也如此;字符串中间的空格,可以通过实际的空格进行匹配,如要匹配多个空格,敲入空格和+即可。

//第一,将指定格式的时间字符串中的年月日等信息存在一个数组

        var str=‘2017-5-11 10:10:00‘,reg=/^(\d{4})[-/](\d{1,2})[-/](\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})$/g,ary=[];
        str.replace(reg,function(){
            console.log(arguments) //["2017-5-11 10:10:10", "2017", "5", "11", "10", "10", "10", 0, "2017-5-11 10:10:10", callee: function, Symbol(Symbol.iterator): function]
            ary=[].slice.call(arguments);    //将arguments类数组转为数组
            ary=ary.slice(1,7);
        })
        //第二,设置目标时间格式,把数组中对应的项替换到指定的区域

        var resStr = ‘{0}年{1}月{2}日 {3}时{4}分{5}秒‘;

        // var ary = [‘2015‘,‘6‘,‘10‘,‘14‘,‘53‘,‘0‘];
        var reg = /{(\d+)}/g;
        resStr = resStr.replace(reg,function(){
            console.log(arguments);//["{0}", "0", 0, "{0}年{1}月{2}日 {3}时{4}分{5}秒", callee: function, Symbol(Symbol.iterator): function]

            var num = arguments[1],val = ary[num];
            val.length==1 ?val=‘0‘+val : void 0;
            console.log(val);
            return val;            //将匹配到的替换为val
        })
        console.log(resStr);
        //上面的匿名函数执行的次数,取决于正则能在字符中捕获多少次,正则在resStr中捕获6次,所以我们的匿名函数执行6次    

  结果如下:2017年05月11日 10时10分00秒

时间: 2024-11-08 14:34:10

时间字符串格式化的相关文章

2017-9-3 时间字符串格式化(转)

时间格式化CodeDateTime dt = DateTime.Now;Label11.Text = dt.ToString();2005-11-5 13:21:25Label12.Text = dt.ToFileTime().ToString();127756416859912816Label13.Text = dt.ToFileTimeUtc().ToString();127756704859912816Label14.Text = dt.ToLocalTime().ToString();2

js中格式化时间字符串

.net 程序员肯定有遇到过,将一个对象json序列化之后Date 字段 就会转化成 '/Date(1370770323740)/' 这种格式的数据,下面介绍一种在js中,关于时间格式的转换. <script> function formatDate(date, format) { if (!date) return; if (!format) format = "yyyy-MM-dd"; switch(typeof date) { case "string&qu

WPF XAML日期时间字符串的格式化

原文:WPF XAML日期时间字符串的格式化 XAML中的日期格式化跟程序代码中的格式化很类似,但有一些小小的不同: 对于某些控件我们可以使用ContentStringFormat 指定日期时间格式的方式: <Label Content="{Binding Path=BirthDate}" ContentStringFormat="{}{0:dd MM YYYY HH:mm:ss}" /> 使用默认日期格式显示日期的方式(显示的日期格式会随控制面板里的设

python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = False   def check_log(func): def inner(): res = func() if LOGIN_INFO: print('验证成功!') return res else: print('验证失败!') return inner   def check_admin(func)

ios开发处理服务器返回的时间字符串

#import <Foundation/Foundation.h> void other(); void string2date(); int main(int argc, const char * argv[]) { @autoreleasepool { other(); string2date(); } return 0; } void other() { // 获得NSCalendar NSCalendar *calendar = nil; if ([NSCalendar respond

JAVA字符串格式化-String.format()的使用(转)

常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串. format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参

day_5装饰器、字符串格式化、序列化、内置模块、生成器、迭代器之篇】

一.装饰器 为什么要用装饰器??? 在实际的开发环境中应遵循开发封闭原则,虽然在这个原则是用的面向对象开发,但也适用于函数式编程,简单地说,它规定已经实现的功能代码不是允许修改的,但是可以被扩展: 封闭:已实现的功能代码块 开发:对扩展开发 装饰器功能: 1)自动执行装饰器下面的函数,并将被装饰器函数的函数名当做参数传递给装饰器函数 2)装饰器函数的返回值,重新赋值给被装饰函数 #装饰器格式:@+函数名 #装饰器格式:@+函数名 def outer(func): def inner(arg):

python字符串格式化方法 format函数的使用

python从2.6开始支持format,新的更加容易读懂的字符串格式化方法, 从原来的% 模式变成新的可读性更强的 花括号声明{}.用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用. 从format参数引入的变量名 . 冒号:. 字符位数声明. 空白自动填补符 的声明 千分位的声明 变量类型的声明: 字符串s.数字d.浮点数f 对齐方向符号 < ^ > 属性访问符中括号 ? 使用惊叹号!后接a .r. s,声明 是使用何种模式, acsii模式.引用_

Java中时间日期格式化

1.与日期时间相关的类:      第一:java.util.Date;                         将时间作为一个整体使用.处理时,使用Date类较为简便      第二:java.util.Calender;                   要处理时间的一部分,如月.分时,使用Calendar类较为简便      第三:java.text.DateFormat               抽象类,是SimpleDateFormate的父类      第四:java.t