正则表达式
正则表达式是一段特殊的字符串,这段字符串用于描述一段字符串的格式。通过正则表达式可以校验另外一个字符串是否满足特定格式。
1、正则表达式的创建
var reg=new RegExp(正则表达式);
或者
var reg=/^正则表达式$/;
在编写正则表达式时,内容左右添加^正则$表示完全匹配。否则就是包含匹配。
2、正则表达式的书写语法
[]:限制字符串的字符取值范围,[a]只能是a和直接a意义相同,[a-z]可以包含所有的小写英文字母,[A-Z]所有的大写字母,[0-9是所有的数字]
[A-z]表示所有的英文字母,多个范围可以一起叠加使用,[A-z0-9_@]可以由音文字母+数字+下划线+@符号组成。
{}:限制大括号前面的这一段格式对应的长度,{1}长度只能为1,{3,}长度从3到正无穷,{3,100}就是长度在3-100之间。
元字符:在正则表达式中有一些字母具备特殊的含义,这些字符被称为元字符
\w 所有的字母、下划线、数字
\W 所有的非字母、下划线、数字等同于[^A-z0-9_]
\d 所有数字
\D 所有非数字 [^0-9]
. 表示所有字符
\s所有空白字符
\S表示非空白字符
量词:
+表示长度至少包含1个 等同于{1,}
*表示任意长度{0,}
?表示0-1个字符{0,1}
3、正则表达式常用方式
-
校验
通过正则表达式判断一个字符串是否满足正则表达式的格式
var reg=new RegExp([A-z0-9_]{6,16}); var account="12A3a_g"; var b=reg.test(account);
-
替换
字符串中的replaceAll(字符串A,字符串B) 将字符串中的所有字符串A替换为字符串B,但是不支持正则
字符串中的replace方法支持通过正则来完成替换,只要满足正则表达式的格式就会被替换。
var text="abcAy123GG"; var reg=new RegExp([a-z]{1}); var newText=text.replace(reg,"0"); //目的是将字符串text中的所有字母全部替换为数字0 //使用上述做法,只会把第一个英文字母替换为0,如果要全部替换需要在创建正则表达式时带入第二个参数 "g" ,表示全局匹配 //改为: var text="abcAy123GG"; var reg=new RegExp([a-z]{1},"g"); var newText=text.replace(reg,"0"); //除了参数g之外还可以传入参数i 传入参数i表示在匹配时忽略英文字母的大小写,如果要同时开启这两个功能参数写作 "ig"。 var text="abcAy123GG"; var reg=new RegExp([a-z]{1},"gi"); var newText=text.replace(reg,"0");//所有的英文字母无论大小写全部会被替换为0