正则表达式组成元素:
. | 匹配除换行符以外的任意单个字符 |
* | 匹配位于*之前的字符或者子模式的0次或者多次出现 |
+ | 匹配位于+之前的字符或者子模式的1次或者多次出现 |
? | 匹配位于?之前的0个或者一个字符 |
- | 在[]之内用来表示范围 |
| | 匹配位于|之前或之后的字符 |
^ | 匹配行首,匹配以^后面的字符开头的字符串 |
$ | 匹配行尾,匹配以$后面的字符开头的字符串 |
\ | 表示位于\之后为转义字符 |
\f \n \r | 换页符匹配 换行符匹配 匹配回车符 |
\b | 匹配单词头或单词尾,\B和他含义相反 |
\d | 匹配任何数字相当于[0-9],\D含义相反 |
\s | 匹配任何话空白字符,包括空格制表符 换页符 |
\w | 匹配 任何字母 数字以及下划线相当于[a-zA-Z0-9] |
() | 将位于()看作一个整体来对待 |
{m,n} | {}前的字符或子模式重复至少m次,至多n次 |
[] | 表示范围,匹配位于[]中的任意一个字符 |
[^a-z] | 反向范围字符,匹配出小写英文字母之外的任意字符 |
用JavaScript进行测试训练:
输入的内容带不带小数点
1 function isTrue(strValue ) { 2 var reg= /^\d+\.\d+$/ 3 if(reg.test(strValue)){ 4 alert("验证通过") 5 }else{ 6 alert("验证失败") 7 return 8 } 9 } 10 function check() { 11 var regvalue=document.getElementById("reg").value 12 isTrue(regvalue) 13 }
在isture()方法中定义的reg就是正则表达式:/^表示匹配正则的开始,$/表示匹配正则的结束,\d表示匹配0-9的数字,\.前面的\表示为转义,因为.在正则表达式中有特定含义,所以要转义,+表示数字最少出现一次。
输入为邮箱
function isTrue(strValue ) { var reg=/^\w+@[a-zA-Z0-9]{2,10}(\.[a-z]{2,4}){1,3}$/ if(reg.test(strValue)){ alert("验证通过") }else{ alert("验证失败") return } } function check() { var regvalue=document.getElementById("reg").value isTrue(regvalue) }
在isture()方法中定义的reg就是正则表达式:/^表示匹配正则的开始,$/表示匹配正则的结束,\w+表示@符号之前可以出现1次或者多次的字母、数字、下划线等,@符号后面紧跟着是类似于qq、163、sina等,所以用[a-zA-Z0-9]{2,10}表示可以出现字母、数字2到10次,\.表示转义.,.后面小写字母a~z可以出现2到4次。
常用的正则表达式有:
- 是否带有小数:reg= /^\d+\.\d+$/
- 是否由2~4长度的中文名称组成:reg=/^[\u4E00-\u9FA5]{2,4}$/
- 校验是否全由8位数字组成:reg=/^[0-9]{8}$/
- 校验电话码格式:reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/
- 校验邮件地址是否合法:reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/ ,也可以写成reg ='^\w+@(\w+\.)+\w+$'
- 检查给定字符串是否为合法身份证格式:reg='^\d{18}|\d{15}$'
- 检查给定字符串是否为移动手机号码:reg='^(13[4-9]\d{8})|(15[01289]\d{8})$''
- 密码:匹配长度为5-20,必须以字母开头包含数字、“_”、“.”的字符:reg='^[a-zA-Z]{1}([a-zA-Z0-9._]){4,19}$'
- 昵称:匹配长度为6-20的字符串,可以包含字母、数字、下划线:reg='^(\w){6,20}$'
- ip地址:检查给定字符串是否为合法IP地址:reg='^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'