本篇文章给大家谈谈javascript日期正则表达式处理,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、javaScript正则表达式中一个关于日期问题2、如何用javascript中的正则判断日期3、js 日期 时间正则表达式和整数正则表达式4、求一js正则表达式验证YYYY/MM/DD格式日期。5、javascript 正则表达式 出生日期正则表达式限定在规定时间内范围:1900–2009 格式1980-5-12或1988-05-04
javaScript正则表达式中一个关于日期问题
$1表示捕获的”括号内”的组,比如:
/(\d)(\.)(\w)/
(\d)中就是组一的将被捕获的数字,也就是 $1
(\.)则是$2
(\w)则是组三中的数据,也就是:$3, 后面的依次类推, 注意()内如果存在(),则扩号外面的也算捕获组,比如:
/(\.(\d))/
如果想捕获\d中的数字,则应该是$2而不是$1
如果没有括号:/\d{4}-\d{1,2}-\d{1,2}/则没有任何捕获
year = value.replace(reg ,”$1″);//$1代表什么意思?? 是将(\d{4})中捕获的4为数字从value替换为指定的数据,后面的依次类推
在replace 方法中使用 $1 来引用所保存的第一个子匹配。如果有多个子匹配,则可以用 $2, $3 等继续引用。
假定希望将下述的URI 分解为协议 (ftp, http, etc),域名地址以及页面/路径:
下面的正则表达式可以提供这个功能。对 JScript,为:
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/
对 VBScript 为:
“(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)”
第一个附加子表达式是用来捕获该 web 地址的协议部分。该子表达式匹配位于一个冒号和两个正斜杠之前的任何单词。第二个附加子表达式捕获该地址的域名地址。该子表达式匹配不包括 ‘^’、 ‘/’ 或 ‘:’ 字符的任何字符序列。第三个附加子表达式捕获网站端口号码,如果指定了该端口号。该子表达式匹配后跟一个冒号的零或多个数字。最后,第四个附加子表达式捕获由该 web 地址指定的路径以及\或者页面信息。该子表达式匹配一个和多个除’#’ 或空格之外的字符。
将该正则表达式应用于上面所示的 URI 后,子匹配包含下述内容:
RegExp.$1 包含 “http”
RegExp.$2 包含 “msdn.microsoft.com”
RegExp.$3 包含 “:80”
RegExp.$4 包含 “/scripting/default.htm”
希望你们明白
如何用javascript中的正则判断日期
最简单的正则 如 : \d{4}-\d{2}-\d{2} 但是实际情况却不是那么简单,,要考虑,有效性和闰年等问题….. 对于日期的有效范围,不同的应用场景会有所不同。MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59。 UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z。 先考虑与年份无关的前三条规则,年份可统一写作 (?!0000)[0-9]{4} 下面仅考虑月和日的正则 1. 包括平年在内的所有年份的月份都包含1-28日 (0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8]) 2. 包括平年在内的所有年份除2月外都包含29和30日 (0[13-9]|1[0-2])-(29|30) 3. 包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日 (0[13578]|1[02])-31) 合起来就是除闰年的2月29日外的其它所有日期 (?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31) 接下来考虑闰年的实现 1 : 四年一闰 ([0-9]{2}(0[48]|[2468][048]|[13579][26]) 2 : 百年不闰,四百年再闰 (0[48]|[2468][048]|[13579][26])00 3 : 合起来就是所有闰年的2月29日 ([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29) 四条规则都已实现,且互相间没有影响,合起来就是所有符合DateTime范围的日期的正则 ^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$ 考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。 ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
参考资料:
js 日期 时间正则表达式和整数正则表达式
var reg1 = /^(([1-9]\d{3})\-(((0[13578]|1[02])\-(0[1-9]|[12]\d|3[01]))|((0[469]|11)\-(0[1-9]|[12]\d|3[0]))|(02\-(0[1-9]|1\d|2[0-8])))|([1-9]\d{3})\/(((0[13578]|1[02])\/(0[1-9]|[12]\d|3[01]))|((0[469]|11)\/(0[1-9]|[12]\d|3[0]))|(02\/(0[1-9]|1\d|2[0-8]))))$/;
var reg2 = /^(0|([1-9]\d*)|)$/;
var reg3 = /^((\d\:\d{2}\s+(am|AM|pm|PM))|)$/;
console.log(reg1.test(‘2014/11/20’));
console.info(reg1.test(‘2014-11-20’));
console.debug(reg2.test(‘1’));
reg2.test(”);
reg3.test(‘0:00 am’);
求一js正则表达式验证YYYY/MM/DD格式日期。
代码如下:
/*日期验证dd/mm/yyyy*/
functionisDate(str){
vardate=str;
varresult=date.match(/^([0]?[1-9]|[1|2][0-9]|[3][0|1])[/]([0]?[1-9]|[1][0-2])[/]([0-9]{4}|[0-9]{2})$/);
if(result==null)
returnfalse;
vard=newDate(result[3],result[2]-1,result[1]);
return(d.getFullYear()==result[3](d.getMonth()+1)==result[2]d.getDate()==result[1]);
}
扩展资料
java用正则表达式判断输入的日期格式为yyyy/MM/dd
publicstaticvoidmain(String[]args)throwsParseException{
Stringstr1=”2012-05-15″;
Stringstr2=”2012/05/15″;
if(zzbd(str1)){
System.out.println(“str1havematch!”);
}else{System.out.println(“str1don’tmatch!”);}
if(zzbd(str2)){
System.out.println(“str2havematch!”);
}else{System.out.println(“str2don’tmatch!”);}}
publicstaticbooleanzzbd(Strings)
{
Patternpattern=Pattern.compile(\\d{4}/\\d{2}/\\d{2});
Matchermatcher=pattern.matcher(s);
if(matcher.find())
{
returntrue;
}else{
returnfalse;
}
}
}
javascript 正则表达式 出生日期正则表达式限定在规定时间内范围:1900–2009 格式1980-5-12或1988-05-04
不要用正则做,麻烦,可以用js自己提供的date对象,这样还能兼容一些更广泛的输入,比如两位的年份之类。
var birth=”;//换成你的input的值
var birthDate = new Date(birth);
if (!birthDate.getTime()) console.log(‘错误的日期格式,请按照xxxx格式输入’); //错误格式
else if (birthDatenew Date(‘1900-01-01’)) console.log(‘不能小于1900年’);
else if (birthDate=new Date(‘2010-01-01’)) console.log(‘不能大于2009年’);
你把日志换成你需要的提示操作即可。
javascript日期正则表达式处理的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javascript日期正则表达式处理的信息别忘了在本站进行查找喔。