1、正则表达式常用修饰符
- a+b +号代表前面的字符必须至少出现一次
- a*b * 号代表前面的字符可以不出现,也可以出现一次或者多次
- a?b ? 问号代表前面的字符最多只可以出现一次
* 和+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配
- [ABC] 匹配 [...] 中的所有字符
- [^ABC] 匹配除了[...] 中的所有字符
- [A-Z] [A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示匹配所有小写字母
- . 匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]
- [\s\S] 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行
- \w 匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
- \cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符
- \f 匹配一个换页符。等价于\x0c和\cL
- \n 匹配一个换行符。等价于\x0a和\cJ
- \r 匹配一个回车符。等价于\x0d和\cM
- \t 匹配一个制表符。等价于\x09和\cI
- \v 匹配一个垂直制表符。等价于\x0b和\cK
- \b 匹配一个单词边界的位置
- \B 表示非单词边界
- $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'
- () 标记一个子表达式的开始和结束位置
- [ 标记一个中括号表达式的开始
- { 标记限定符表达式的开始
- | 指明两项之间的一个选择
- {n} n是一个非负整数,匹配n次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但能匹配 "food" 中的所有 o
- {n,} n是一个非负整数,至少匹配n次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
- {n,m} m,n是非负整数,n<=m。最少匹配n次,最多匹配m次
2、字符串的正则方法
ES6 出现之前,字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()。
ES6 将这 4 个方法,在语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全都定义在RegExp对象上。
/g 全局匹配
/i 忽略大小写
(1)String.prototype.match 调用 RegExp.prototype[Symbol.match]

(2)String.prototype.replace 调用 RegExp.prototype[Symbol.replace]

(3)String.prototype.search 调用 RegExp.prototype[Symbol.search]
如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1

(4)String.prototype.split 调用 RegExp.prototype[Symbol.split]

版权声明:本文为weixin_48625707原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。