常规正则表达式练习

PS:join()数组转串,split()串转数组 

1、test():在字符串查找符合正则的内容,如果查找到返回true,反之返回false

用法:正则.test(字符串)

2、search():在字符串搜索符合正则的内容,找到就返回出现的位置index。如果有多个相匹配的,只会返回第一个匹配的位置。搜索失败返回-1

用法:字符串.search(正则)

3、match():在字符串搜索符合正则的内容,成功返回内容(数组格式),失败返回null。

用法:字符串.match(正则)

4、replace():查找符合正则的内容,替换成对应字符串。返回替换后的内容

用法: 字符串.replace(正则,‘替换内容’)

parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。

练习题1:验证日期格式是否正确。日期格式都是2018-12-14,四位数-两位数-两位数

var regex = /^d{4}-d{2}-d{2}$/; 

如采用正则  var regex = /^d{4}-d{2}-d{2}$/;   判断日期是否成立的方法,用parse()看是否能返回时间戳,方法如下:

var oDate = document.querySelector('#date');
var oBtn = document.querySelector('#btn');
oBtn.onclick=function(){
var regex = /^d{4}-d{2}-d{2}$/;
var dateVal = oDate.value;
if(regex.test(dateVal)){
console.log(Date.parse(dateVal))//格式成立返回时间毫秒数:1546214400000 否则 NaN
}
}

正则完整判断,因为首先月份是0-12,日期是0-31.而不是任意的数字了,所以如下:

var regex = /^d{4}-(0[1-9]|1[0-2])-(0[1-9]|1[1-9]|2[1-9]|3[0-1])$/;

以上没有排除2月等不包含31号的

原文地址:https://www.cnblogs.com/liubingyjui/p/10180241.html