一.正则表达式怎么使用
正则:根据表达式匹配到我们所需的东西
① 正则.test(值) 返回值为true或false
var str="12345";
var reg=/^[0-9]{5}$/
console.log(reg.test(str)); //true
② 值.match(正则) 返回值为 null 或 集合
console.log(str.match(reg));
//["12345", index: 0, input: "12345", groups: undefined]
二.正则字符
字符 | 用法 |
---|---|
\ | 转义字符 |
^ | 开始 |
$ | 结束 |
* | 匹配前边的子表达式0次或多次 |
+ | 一次或多次 |
? | 0次或1次 |
{ } | 限定符 限定前边子表达式的次数 |
{n} | 匹配前边子表达式n次 |
{n,} | 匹配前边子表达式的次数>=n次 |
{n,m} | 匹配前边的子表达式n到m次 |
| | 或 eg:(z|f)ood zood food |
[ ] | 集合 |
[abc] | 匹配字符串中的a|b|c |
[^abc] | 匹配非a|b|c中的其他字符 |
[0-9][a-z][A-Z] | 匹配的是范围集合 |
[^0-9] | 匹配0-9之外的其他值 |
() | 括子表达式 |
\b | 匹配单词的末尾(单词和空格直接的位置) |
\B | 匹配单词非边界(中间,开始) |
g | 全局查找 |
\d | 匹配数字[0-9] |
\D | 匹配非数字[^0-9] |
\s | 匹配空白字符 (空格 回车 换行) |
\S | 匹配非空白字符 |
\w | 匹配[0-9a-zA-Z_] |
\W | 匹配 [^0-9a-zA-Z_] |
\n | 匹配换行符 |
\r | 匹配回车 |
例子
①身份证
var reg1=/^\d{17}[0-9X]{1}$/
②邮箱
var reg2=/^\w{5,10}\@((qq)|(163)\.((com)|(cn)))$/
③网址
var reg3=/^(http|https)\:\/{2}(www)\.[0-9a-zA-Z]+\.com$/
③电话号码
var reg4=/^1[34578]{1}\d{9}$/
④\d
var str1="sleep in classroom sleep";
console.log(str1.match(/sl\B/g)); //(2) ["sl", "sl"]
⑤去除空格
\s只是匹配到空格,具体干什么由我们决定
var s="1 2 3 4 5";
console.log(s.match(/\s/g)); //[" ", " ", " ", " "]
console.log(s.replace(/\s/g,"")); //12345