JS正则表达式比较常见用法
废话不多说,直接步入正轨了,想要了解js正则表达式用法的相关知识,通过本教程学习吧。
定义和使用
varpatt1=newRegExp("hello"); varpatt2=/world/;
test方法
test()方法检索字符串中的指定值。返回值是true或false。
varpat=/my/; varstr="thisismycode..."; console.log(pat.test(str));//true
exec方法
exec()方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回null。
varpat=/hello/; console.log(pat.exec("ohhelloworld"));//返还hello
正则表达式类型
/pattern/attributes
参数attributes是一个可选的字符串,常用属性“g”、”i”,分别用于指定全局匹配、区分大小写的匹配。
varstr="VisitHunger"; varpatt1=/hunger/i;//不区分大小写 console.log(str.match(patt1));//全局匹配 varstr="hellohungervalley!Iamhunger"; varpatt1=/hunger/g; console.log(str.match(patt1));//不区分大小写,全局匹配 varstr="helloHungervalley!Iamhunger"; varpatt1=/hunger/gi; console.log(str.match(patt1));
字符串正则
1.search
字符串查找
varstr="VisitW3School!"; console.log(str.search(/w3school/));//-1console.log(str.serach(/w3school/i));//6
2.match
字符串匹配
varstr="1plus2equal33"; console.log(str.match(/\d+/));//[1] console.log(str.match(/\d+/g));//[1,2,33]
3.replace
字符串替换
varstr="HelloJI!ohIamhunger" console.log(str.replace(/Hunger/,"valley"));console.log(str.replace(/hunger/ig,"hunger"));
4.split
字符串分割
varstr="HelloHunger,ohIamHunger"; str.split(""); str.split(/\s+/);
正则写法
[abc]查找方括号之间的任何字符。
varstr="Isthisallthereis?"; varpatt1=/[a-h]/g; console.log(str.match(patt1));
[^abc]查找任何不在方括号之间的字符。
varstr="hellojikexueyuan!"; varpatt1=/[^jike]/g; console.log(str.match(patt1));
[0-9]查找任何从0至9的数字。
[a-z]查找任何从小写a到小写z的字符。
[A-Z]查找任何从大写A到大写Z的字符。
[A-z]查找任何从大写A到小写z的字符。
[adgk]查找给定集合内的任何字符。
[^adgk]查找给定集合外的任何字符。
red|blue|green查找任何指定的选项。
varstr="hellohunger!Howareyou?"; varpatt1=/hello|you/g;c onsole.log(str.match(patt1));
.查找单个字符,除了换行和行结束符。
varstr="That'shot!"; varpatt1=/h.t/g; document.write(str.match(patt1));
\w查找单词字符(字母、数字、下划线)。
varstr="Give100%!"; varpatt1=/\w/g; document.write(str.match(patt1));
\W查找非单词字符。
varstr="Give100%!";varpatt1=/\W/g;document.write(str.match(patt1));
\d查找数字。
varstr="Give100%!"; varpatt1=/\d/g; document.write(str.match(patt1));
\D查找非数字字符。
varstr="Give100%!";varpatt1=/\D/g;document.write(str.match(patt1));
\s查找空白字符(空格、tab、换行、回车)。
varstr="Isthisallthereis?"; varpatt1=/\s/g;document.write(str.match(patt1));
\S查找非空白字符。
varstr="Isthisallthereis?";varpatt1=/\S/g;document.write(str.match(patt1));
\b匹配单词边界。
/\bm/匹配“moon”中的‘m';
/oo\b/不匹配“moon”中的‘oo',因为‘oo'后面的‘n'是一个单词字符;
/oon\b/匹配“moon”中的‘oon',因为‘oon'位于字符串的末端,后面没有单词字符;
varstr="Hellojikexueyuan"; varpatt1=/\bjikexueyuan/g; document.write(str.match(patt1));
\B匹配非单词边界。
\n查找换行符。
varstr="HelloHunger.\nbeaFE."; varpatt1=/\n/g;document.write(str.search(patt1));
n+匹配任何包含至少一个n的字符串。
varstr="HelloHHunger!HelloWorld!"; varpatt1=/H+/g; document.write(str.match(patt1)); varstr="HelloHunger!HelloWorld!"; varpatt1=/\w+/g;document.write(str.match(patt1));
n*匹配任何包含零个或多个n的字符串。
varstr="HelloooHunger!HelloWorld!";varpatt1=/lo*/g;document.write(str.match(patt1))
n?匹配任何包含零个或一个n的字符串。
varstr="1,100or1000?";varpatt1=/10?/g;document.write(str.match(patt1));
n{X}匹配包含X个n的序列的字符串。
varstr="100,1000or10000?";varpatt1=/\d{4}/g;document.write(str.match(patt1));
n{X,Y}匹配包含X或Y个n的序列的字符串。
varstr="100,1000or10000?";varpatt1=/\d{3,4}/g;document.write(str.match(patt1));
n{X,}匹配包含至少X个n的序列的字符串。
varstr="100,1000or10000?";varpatt1=/\d{3,}/g;document.write(str.match(patt1));
n$匹配任何结尾为n的字符串。
varstr="Isthishis";varpatt1=/is$/g;document.write(str.match(patt1));
^n匹配任何开头为n的字符串。
varstr="Isthishis";varpatt1=/^Is/g;document.write(str.match(patt1));
常见正则
汉字:[\u4e00-\u9fa5]
手机号:1[0-9]{10}
邮箱:(\S)+[@]{1}(\S)+[.]{1}(\w)+