一、定义
正则表达式是对字符串操作的一种逻辑公式。用事先定好的一些特定字符组成一个“规则字符串”,再用“规则字符串”对字符串进行过滤。
ECMAScript通过RegExp类型来支持正则表达式。
它是对字符串执行模式匹配的强大工具
二、写法
1、直接量的语法:
/pattern/attributes(/正则/正则属性,例如:/'a'/g [全局匹配'a'])
2、RegExp对象的语法:
new RegExp(pattern,attributes)
RegExp 对象规定在文本中检索的内容。
pattern里面一个字符串,代表的是正则
attributes为可选字符串,包含属性:'g'、'i'、'm'
分别是用于指定全局匹配、不区分大小写、多行匹配
三、RegExp对象有三个方法:
1、test():检索字符串中的指定值。返回值是true或false。
2、exec():检索字符串中的指定值,返回值是被找到的值,若没找到则返回null
3、compile():用于改变RegExp(改变和重新编译正则表达式)
四、元字符
1、. :查找单个字符,除了换行和行结束符
2、w :查找单词字符、数字、“_”(即,字母、数字、下划线)
W :w的取反
3、d :查找数字
D :d的取反
4、s :查找空白字符(“”、‘
’、‘
’)
5、 :匹配单词边界
B :的取反
6、
:查找换行符
7、u : 匹配汉字([
4e00-u9fa5 ])
8、^n:匹配任何开头为 n 的字符串。
9、n$:匹配任何结尾为 n 的字符串。
五、方括号(表示范围)
1、[abc] :查找方括号之间的任何(单个)字符。
2、[^abc] : 查找任何不在方括号之间的字符。
3、[0-9] : 查找任何从0 到 9的数字。
4、[a-z] :查找任何从小写 a 到 z的字符。
5、[A-Z] :查找任何从大写 A 到 Z 的字符
/[0-9A-Za-z_]/ : 相当于w ;
^ /[^0-9A-Za-z_]/ èW。
六、分支(或):|
七、量词
1、n+ :匹配任何包含至少一个 n 的字符串。
2、n*:匹配任何包含零个或多个 n 的字符串。
3、n?:匹配任何包含零个或一个 n 的字符串。
4、n{X}:匹配包含 X 个 n 的字符串。
5、n{X,Y}:匹配包含 X ~ Y 之间 n 的字符串。
6、n{X, }:匹配X个n字符串及以上
八、正则方法
1、search(reg):检索与正则表达式相匹配的值。
2、match(reg):找到一个或多个正则表达式的匹配。基本需要配合g
3、replace(reg, str):替换与正则表达式匹配的子串。
注:匹配中文字符的正则表达式: /[u4e00-u9fa5]/g
去掉首尾空格 reg = /^s+|s+$/g