JavaScript日期格式化与正则表达式RegExp.$的用法
2009-03-03 17:15
337 查看
今天有空就开写一个Calendar日历,在网上看到一个牛人写的JavaScript日期格式化的代码,看了一会有点晕。代码奉上:
看到上面代码有RegExp.$1,很茫然。查了一下才知道:
$1…$9是RegExp的一个属性, $1…$9:表示第n组匹配的结果,这个在正则表达式里有多个以()分组时有用。
JScript中String对象与正则表达式有关的操作有一个叫replace,可是要如何在replace中使用正则表达式匹配的结果呢?
这时候我们就需要用到“匹配变量”了,匹配变量用于表示正则匹配的结果,以下是匹配变量的说明:
$& -- 表示全部匹配组匹配的结果,最后再啰嗦一次,匹配组就是正则表达式的()分组
$$ -- 表示$字符,因为匹配变量用掉了$字符,所以需要转义
$n -- 类似前面的$1…$9,表示第n组匹配的结果
$nn -- 很简单就是第nn组匹配的结果
$` -- 就是前面提到过的leftContext,比如abcdefg被匹配出了d那么abc就是它的leftContext了
$' -- 和上面符合很接近不要看错了!,这个就是rightContext了
/** * @param d the delimiter * @param p the pattern of your date * @author meizz * @author kimsoft add w+ pattern */ Date.prototype.format = function(style) { var o = { "M+" : this.getMonth() + 1, //month "d+" : this.getDate(), //day "h+" : this.getHours(), //hour "m+" : this.getMinutes(), //minute "s+" : this.getSeconds(), //second "w+" : "/u65e5/u4e00/u4e8c/u4e09/u56db/u4e94/u516d".charAt(this.getDay()), //week "q+" : Math.floor((this.getMonth() + 3) / 3), //quarter "S" : this.getMilliseconds() //millisecond } if (/(y+)/.test(style)) { style = style.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } for(var k in o){ if (new RegExp("("+ k +")").test(style)){ style = style.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); } } return style; };
看到上面代码有RegExp.$1,很茫然。查了一下才知道:
$1…$9是RegExp的一个属性, $1…$9:表示第n组匹配的结果,这个在正则表达式里有多个以()分组时有用。
JScript中String对象与正则表达式有关的操作有一个叫replace,可是要如何在replace中使用正则表达式匹配的结果呢?
这时候我们就需要用到“匹配变量”了,匹配变量用于表示正则匹配的结果,以下是匹配变量的说明:
$& -- 表示全部匹配组匹配的结果,最后再啰嗦一次,匹配组就是正则表达式的()分组
$$ -- 表示$字符,因为匹配变量用掉了$字符,所以需要转义
$n -- 类似前面的$1…$9,表示第n组匹配的结果
$nn -- 很简单就是第nn组匹配的结果
$` -- 就是前面提到过的leftContext,比如abcdefg被匹配出了d那么abc就是它的leftContext了
$' -- 和上面符合很接近不要看错了!,这个就是rightContext了
相关文章推荐
- JavaScript日期格式化与正则表达式RegExp.$的用法
- JavaScript日期格式化与正则表达式RegExp.$的用法
- JavaScript基础——引用类型(二)日期类型Date、正则表达式类型RegExp
- JavaScript正则表达式实现日期格式化
- javascript 正则替换 replace(regExp, function)用法
- javaScript里的正则表达式RegExp和replace
- ASP中RegExp对象正则表达式功能用法
- 【前端学习】javascript正则表达式和字符串RegExp and String(一)
- javascript 正则表达式用法 小结
- oracle 判断字段是否为是数字 regexp_like用法 正则表达式
- javascript 中 正则表达式两种表达方式(regexp in javascript two ways expression)
- JavaScript正则表达式 RegExp
- asp的RegExp对象正则表达式功能用法
- javascript正则表达式(RegExp类型)
- 正则表达式格式化日期
- asp RegExp对象正则表达式功能用法3
- oracle 判断字段是否为是数字 regexp_like用法 正则表达式
- javascript正则表达式多行匹配和RegExp理解
- 从0到1分步实现一个出生日期的正则表达式(JavaScript)
- oracle 10g正则表达式 REGEXP_LIKE 用法