常用正则学习

2018-12-05  本文已影响0人  林帅进来了

一、实例化RegExp

1、字面量
2、构造函数

字面量
var reg = /\bis\b/g;(\b单词边界)
构成函数
var reg = new RegExp('\bis\b','g');

g 全文检索
i 忽略大小写
m 多行搜索

二、元字符

正则表达式由两种字符类型组成:
1、原义文本字符
2、元字符(代表有特殊含义的非字母字符)

三、字符类

可以使用元字符[]构建一个简单的类([abc]表示将a或b或c归于一类,表达式可以匹配这类字符)
字符类取反([^abc])

四、范围类

可以使用[a-z]标识a到Z,类内部可以连写[a-zA-Z]

五、预定义类

. [^\r\n] 除了回车换行之外的所有字符
\d [0-9] 数字字符
\D [^0-9] 非数字字符
\s 空白符
\S 非空白符
\w [a-zA-Z_0-9] 单词字符(数字、字母、下划线)
\W [^a-zA-Z_0-9] 非单词字符
^ 以开始
$ 以结束
\b 单词边界
\B 非单词边界

六、量词

?最多出现一次

七、贪婪模式

默认贪婪模式 '12345678'.replace(/\d{3,6}/,'A')==>'A78'
非贪婪模式 '123456789'.replace(/\d{3,6}?/,'A')==>'AA78'

八、分组

小括号()达到分组效果
'a1b2c3d4'.replace(/([a-z]\d){3}/,'A')==>'Ad4'
或 |达到效果
反向引用
'2016-04-24'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'2/1/$3')
忽略分组 加?: (?:a)(b)

九、前瞻

向前检查是否符合断言
正向前瞻 exp(?=assert) 'a3fd123'.replace(/a-z/g,'A');==>"a3fA123"
负向前瞻(取反) exp(?!assert) 'a3fd123'.replace(/a-z/g,'A');==>"a3Ad123"

十、对象方法

reg.test('a') 测试传入字符串是否符合正则规则 符合返回true
reg.exec('a') 不符合返回null,符合返回数组[index,input] index--匹配文本第一个字符的位置 input--存放被检索的字符串

上一篇 下一篇

猜你喜欢

热点阅读