限定符-数量
* 重复零次或更多次
+ 重复一次或更多次。匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
? 重复零次或一次。匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}。
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
解释
runoo+b,可以匹配 runoob、runooob、runoooooob 等,
+ 号代表前面的字符必须至少出现一次(1次或多次)。
runoo*b,可以匹配 runob、runoob、runoooooob 等,
* 号代表前面的字符可以不出现,也可以 出现一次或者多次(0次、或1次、或多次)。
colou?r 可以匹配 color 或者 colour,
? 问号代表前面的字符最多只可以出现一次(0次、或1次)。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
字符类
[aeiou] 匹配任何一个英文元音字母
[.?!] 匹配标点符号(.或?或!)。
\d 匹配一位数字同于 [0-9]
\D 匹配一个非数字字符。等价于 [^0-9]。
\w 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。
\W 匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。
1、例一
^[0-9]+abc$
^ 为匹配输入字符串的开始位置。
[0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 代表前面的字符必须出现一个或者多个。
abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。
2、例二
^[a-z0-9_-]{3-15}$
^ 为匹配输入字符串的开始位置。
以字母数字下划线开始到结束,3-15位字符
解释:3到15位字符,只允许包含数字字母下划线
3、例三
\(?0\d{2}[) -]?\d{8}。
\(? 匹配一次或零次的左括号
0 匹配1个数字零
\d{2} 匹配2个数字
[)-]? 匹配一次或零次的右括号或短横线
\d{8} 匹配8个数字
4、例四
(\d{1,3}\.){3}\d{1,3}
\d{1,3}匹配1到3位的数字,
(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,
最后再加上一个一到三位的数字(\d{1,3})。
$1可以代表第一个()及其中内容 即$1 =(\d{1,3}\.),以此类推$1、$2、$3
5、例五
var userName = $("#userName").val().replace(/(^\s*)|(\s*$)/g, "");
以空替换用户名中的空格
6、姓名手机号脱敏处理
var phone ="13623021456";
var idcode ="440582199612056666";
var name ="陈妹";
var name1 ="陈美美";
var name2 ="欧阳美美";
phone =phone.replace(/^(.{3}).+(.{4})$/,"$1****$2");
idcode =idcode.replace(/^(.{4}).+(.{4})$/,"$1****$2");
name = name.replace(/^(.).+$/,"$1*");
name1 = name1.replace(/^(.).+(.)$/,"$1*$2");
name2 = name2.replace(/^(.{2}).+(.)/,"$1**$2");
console.log("phone",phone);
console.log("idcode",idcode);
console.log("name",name);
console.log("name1",name1);
console.log("name2",name2);
效果