正则表达式的 语句
元字符
*()用于分组可以用$n
来表示
*(?:)不捕获分组
*{}量词表示数量的
例如表示a个{a} 表示a到b个表示为{a,b} 表示a个以上为{a,b};
*[]查找某个范围内的字符
[0-9a-zA-Z] 查找任何从 0 至 9 的数字\查找任何从小写 a 到小写 z 的字符。\查找任何从大写 A 到大写 Z 的字符。 var va="adsn ahen ajhn akki sihj smnn uknh" console.log(va.match(/[ae]s/))//寻找as或es
- | 分支()相对与或的
系统预定意元字符 - ?表示0个或1个
- +表示一个也上
贪婪模式与反贪婪模式
*、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
var c="qqq icbkb coiwcnk tyu kjanc alnc" var reg =/\w{4,7}/g console.log(c.match(reg))// ["icbkb","coiwcnk","kjanc","alnc"] var reg =/\w{4,7}?/g console.log(c.match(reg)) ["icbk","coiw","kjan","alnc"]
前瞻
reg(?=reg1)正向前瞻
reg(?!reg1)反向前瞻
正则对象属性
*lastIndex
该属性存放一个整数,它声明的是==上一次匹配文本之后==的第一个字符的位置
<script type="text/javascript"> var str = "The rain in Spain stays mainly in the plain"; var patt1 = new RegExp("ain","g"); patt1.test(str) document.write("Match found. index now at: " + patt1.lastIndex); </script>
常用的正则匹配
利用正则表达式限制网页表单里的文本框输入内容
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/1/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/1/g,''))"
用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/2/g,clipboardData.getData(''text'').replace(/2/g,''))"
用正则表达式限制只能输入数字:onkeyup="value=value.replace(/3/g,'') "onbeforepaste= "clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/3/g,''))"
用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,''
* 验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,
** 只能包含字符、数字和下划线。
* 验证是否含有^%&'',;=?$"等字符:“[^%&'',;=?$x22]+”
** 只能输入汉字:“^[u4e00-u9fa5],{0,}$”
验证Email地址:“^w+[-+.]w+)@w+([-.]w+).w+([-.]w+)$”
- 验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?...*)?$”
* 验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”
正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,
“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
* 验证身份证号(15位或18位数字):“^d{15}|d{}18$”
*验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”
* 验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
正确格式为:“01”“09”和“1”“31”。
* 匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配空行的正则表达式:n[s| ]r
匹配HTML标记的正则表达式:/<(.)>.|<(.*) />/
匹配首尾空格的正则表达式:(^s)|(s$)
匹配Email地址的正则表达式:w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?