通过正则指定特定字符串出现的规则,去匹配某些字符串,如果匹配成功,就可以得到结果
关键字正文:abc
语法糖:
?
• var reg = /abc/;
?
构造函数
var reg = new RegExp("abc");
. 任意字符 换行除外
\ 转义 \.普通的点
\d 数字
\w 数字 字母 下划线
\s 空字符 空格
\D 非数字
\W 非 数字字母下划线
\S 非空
?
*
: 前一个内容重复至少 0 次,也就是可以出现 0 ~ 正无穷 次
+
: 前一个内容重复至少 1 次,也就是可以出现 1 ~ 正无穷 次
?
: 前一个内容重复 0 或者 1 次,也就是可以出现 0 ~ 1 次
{n}
: 前一个内容重复 n 次,也就是必须出现 n 次
{n,}
: 前一个内容至少出现 n 次,也就是出现 n ~ 正无穷 次
{n,m}
: 前一个内容至少出现 n 次至多出现 m 次,也就是出现 n ~ m 次
注意:用来修饰 元字符 修饰时前面一个元字符
需要完整匹配 一个字符 从开头到结束 每一位规则 数量规则
^匹配开头
$匹配结束
//必须是 小写字母a开头 总共是 4-8位数字字母_
var reg = /^\w{3,7}$/;
var a = ‘s74935‘;
var b= ‘a23845675493821‘;
var c= ‘a23456‘;
alert(reg.test(a)); //false
alert(reg.test(b));//false
alert(reg.test(c));//true
[] 备选字符集 匹配一位的 可以在中括号写 这一位可能出现的多个字符
如果这一位的备选字符是连续的 比如 a-z A-Z 0-9可以用 -连接
//必须是 大写字母A-Z开头 总共是 4-8位数字字母_
var reg = /^[A-Z]\w{3,7}$/;
var a = "A28248";
var b = "a34546";
var c = "F468354695879689";
alert(reg.test(a)); //true
alert(reg.test(b)); //false
alert(reg.test(c)); //false
//必须是 大写字母A-Z或者_或者1-7开头 总共是 4-8位数字字母_
var reg = /^[A-Z_1-7我]\w{3,7}$/; 首字母可以是A-Z或者_或者1-7或者我
() 分组 将几位作为一个完整的规则
需求:有一个字符串 结束 必须是三位 abc出现一次 或者abc没有
使用场景:多位字符需要被修饰符修饰 (量词),需要加()
var reg = /^\w{3,7}(abc)?$/
| 选择 或
字符串结尾 可以是 a或b
var reg =/^\w[acd457]a|c$/;
var str = ‘c‘;
alert(reg.test(str));//true
错误原因:js 将 | 两边作为两个选择 规则就变成了 可以是 \w[acd457]a 或者 c
怎么解决:用()分组解决
var reg =/^\w[acd457](a|c)$/;
注意:选择 一般都会伴随着分组
备选字符集取反 [^] 取反
[^abc] 除了abc的任意字符
关键字
i ignore 忽略大小写
/[a-z]/i; a-zA-Z
g global 全局匹配 不会只找到第一个复合条件的字符就立即返回,继续查找
/\w/g
注意:
关键字是用来修饰 正则对象的 写在正则的后面
如何匹配字符串开头和结尾的空格
var reg = /^\s*|\s*$/;
search
replace
3,查找 match
可以百度 正则大全 有很多写好的正则 可以直接使用;
原文:https://www.cnblogs.com/cxf1214/p/11432570.html