正则表达式
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
例如:
-
runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次
-
runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表字符可以不出现,也可以出现一次或者多次
-
colou?r 可以匹配 color 或者 colour,? 问号代表前面的字符最多只可以出现一次
构造正则表达式是将多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
简而言之,正则表达式的作用对象一串元字符,其作用是对其中的内容进行类似于增删查改的功能
用以下内容引用正则表达式https://www.jb51.net/article/107796.htm
https://www.jb51.net/article/116947.htm
具体事例如下:
验证用户(ckeckUser)是否合法:
验证规则:字母、数字、下划线组成,字母开头,4-16位。
function checkUser(str){ var re = /^[a-zA-z](验证是否字母开头)\w{3,15}$(验证长度是否为4到16为,注下标从零开始(类似于c语言中的数组))/; if(re.test(str)){ alert("正确"); }else{ alert("错误"); } } checkUser("jihua_cnblogs");//结果:正确
checkUser("jihua_cnblogssgfhs");//结果:错误(lenght>16)
checkUser("jih");//结果:错误(lenght<4)
checkUser("3jihua_cnblogs");//结果:错误(不是以字母开头)
验证手机号是否合法
验证规则:11位数字,以1开头。
function checkMobile(str) { var re = /^1(检测是否以1开头)\d{10}$(检测长度是否为11)/ if (re.test(str)) { alert("正确"); } else { alert("错误"); } } checkMobile('13800138000'); //结果:正确 checkMobile('139888888889');//结果:错误
checkMobile('13988888');//结果:错误
验证邮箱是否合法
验证规则:邮箱地址分成“第一部分+@+第二部分”
第一部分:由字母、数字、下划线、短线“-”、点号“.”组成,
第二部分:为一个域名,域名由字母、数字、短线“-”、域名后缀组成,
而域名后缀一般为.xxx或.xxx.xx,一区的域名后缀一般为2-4位,如cn,com,net,现在域名有的也会大于4位
function
checkEmail(str){
var
re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/
if(re.test(str)){
alert("正确");
}else{
alert("错误");
}
}
checkEmail("contact@cnblogs.com");//结果·:正确
checkEmail("461642864@qq.com");//结果·:正确
验证身份证是否合法
验证规则:身份证号码为18位,18位前17位为数字,最后一位是校验位,可能为数字或字符X
function
isCardNo(card){ var
re = /(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if(reg.test(card)){ alert("正确");
} else {
alert("错误");
}
}
isCardNo(87486489461658586846564)//结果:错误