正则表达式工具: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个分组的引用