1. reg的用法涉到函数和正则表达式的规则。
1正则的规则
正则表达式就是字符串的集合:用正则方法test时,可以这么认为。
https://regexper.com/
用字符串方法,正则作为参数时,正则被认为是一个标记。且一般情况下不用到^,$。
?=
?!
元字符
var str="123\\\4o\"5\"67oo";
var n=str.search(/\\/);
document.getElementById("demo").innerHTML=n+str;
//3123\@o"5"67oo
\s 空格
\d 数字
.
\w数字字母下划线
2函数 test |match replace search split
- test
var patt1=new RegExp("^ee?$");
document.write( patt1.test("ee"));//boolean:true
document.write( patt1.test("e"));//boolean:true
document.write( patt1.test("1e"));//boolean:false
- match replace
match:字符串方法,参数为reg,reg可以配合g和i使用。返回一个数组 ,或者null。
数组中元素:1.每个元素是最长匹配原则的结果 2.str中已经匹配到的字符不参与第二次匹配eg:ababab和/aba?/g 结果是[“aba”, “ab”]
replace:返回字符串。找到reg2中的字符串,换成****
var str="abababf uc kfuck";
reg1=/aba?/g
var n1=str.match(reg1);
var reg2 = /f\s*u\s*c\s*k/g
var n2 = str.match(reg2)
console.log(n1);//["aba", "ab"]
console.log(n2);//["f uc k", "fuck"]
console.log(str.replace(reg2, '****'),str);//ababab******** abababf uc k
- search
返回第一个结果的位置。g无效,i有效
var str="1234o67oo";
var n=str.search(/oo?/g);//4 ['o','oo']中第一个元素的位置。
2. reg的应用场景
匹配test(str)
-
匹配密码,密码必须包含数字与字母
reg = /^(?![0-9]+ ) ( ? ! [ A − Z a − z ] + )(?![A-Za-z]+ )(?![A−Za−z]+)[0-9A-Za-z]+$/ -
匹配密码,密码强度:强,必须包含大写,小写和数字,和特殊字符(!,@,#,%,&),且大于6位
-
匹配email
-
匹配用户名,包含字母或者数字,且8位
-
匹配ip地址