从javaScript中学习正则表达式——RegExp

时间:2022-05-11 00:54:07

正则表达式工具:http://regexper.com   由于国外网络可以选择 https://github.com/javallone/regexper-static 离线安装作为本地服务。

正则表达式的创建方式:字面量(var reg = /\bis\b/gim)  构造函数(var  reg = new RegExp('/\bis\b/', 'g'))

正则表达式核心:1、原义文本字符(a, 1, 0, B)

2、元字符(* + ? $ ^ . | \ ( ) [ ] { } \t \n \v \w \W等等)

3、字符类(/[abcde]/g  /[^abcde]/g)

4、范围类(/[0-9a-z]/   /[0-8]/)

5、预定义类(. \d \D \s \S \w \W)

6、边界(^ $ \b \B)

7、量词(? + * {n} {n, m} {n,})

8、贪婪模式(/\d{3,6}/g)

9、非贪婪模式(/\d{3,6}?/g)

10、分组(使量词作用于分组)

11、或(/ad|da/g)

12、反向引用(根据$1, $2, $n获取分组内容。不希望捕获分组,在分组内加上(?:\d+))

13、前瞻(/\w(?=\d)/g)

14、RegExp对象的属性(global ignore case multiline lastIndex source)

15、RegExp对象的方法(reg.test(str)  reg.exec(str))

16、字符串对象的方法(str1.search(reg)  str1.match(reg)  str1.replace() str1.split(reg))

简单运用:

用一个正则表达式来判断一个字符串,只有aaaaa aaaa  bbbbbbbbb这类的字符串能通过

/^([a-zA-Z0-9])\1*$/             \1表示对第一个分组的引用,如\m,是对第m个分组的引用