2018-06-21 js正则表达式
正则表达式:描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
1.修饰符
i->忽略大小写;
g->全部匹配;
m->把\n识别成多行;
2.中括号
[abc]->匹配中括号中的任意一个字符;
[^abc]->匹配除了中括号中的任意一个字符;
(abc)|(zxc)->匹配abc或zxc;
3.元字符
.-> 任意一个字符
\w -> 任意一个字母/数字/下划线
\W -> 任意一个非 字母/数字/下划线
\d -> 任意一个数字
\D -> 任意一个非数字
\s -> 任意一个空格
\S -> 任意一个非空格
\b -> 单词边界
\B -> 非单词边界
\n -> 换行符
4.量词
+ -> 匹配一个或者多个
* -> 匹配任意多个
.* -> 模糊匹配多个字符
.*? -> 贪婪模式
? -> 匹配1个或者0个
{3} -> 匹配3个
{3,5} -> 匹配3个到五个
{3,} -> 匹配三个以上
^ -> 匹配行首
$ -> 匹配行尾
?=a -> 匹配后面紧跟a的
?!a -> 匹配后面不紧跟a的
4.js中常使用正则的方法
search();
match();
replace();
split();
5.实例
①//匹配开始为139的手机号码
str="13969324896";
if(str.match(/^139\d{8}$/)){
alert("ok");
}else{
alert("no");
}
②//匹配邮箱
str="wrr@qq.com";
if(str.match(/^\w+@\w+\.\w+$/)){
alert("ok");
}else{
alert("no");
}
③//向后引用的特殊匹配,将2018-06-21替换成2018/06/21
data="2018-06-21";
time=data.replace(/(\d+)\-(\d+)\-(\d+)/,"$1/$2/$3");//三个圆括号不能省略,圆括号中的内容会自动依次替换成$1,$2,$3
alert(time);