[关闭]
@demonly 2017-04-06T08:40:48.000000Z 字数 1538 阅读 1618

正则表达式

JavaScript


正则表达式用于表示匹配字符串的规则,正则表达式以"/"开始和结束。正则表达式对大小写敏感。

特殊字符

特殊字符串表达特殊的含义,如果要检测"*"等特殊字符,需要在前面加上\进行转义。

特殊字符 含义 例子
. 匹配 \n 以外的所有字符
^ 表示字符串开头 "^2"表示以2开始
$ 表示字符串的结尾,如果允许跨行检索,那么也表示行尾 "2$"表示以2结尾
[] 中括号表达式,匹配中括号内的任意字符,在中括号的开头加上"^"表示补集 [0-9a-zA-Z]表示\w,[^0-9a-zA-Z]表示\W
() 表示将括号内分组并标记为子表达式,在开头加上"?:"表示仅分组不标记为子表达式。\2表示重复第二子表达式 "(abc)\1"匹配"abcabc","(?:abc)"仅分组不编号
* 匹配前面的子表达式零次或多次。在后面加"?"采用非贪婪算法,即匹配尽量少的字符串 "x*"匹配零个或以上个"x"
+ 匹配前面的子表达式一次或多次。在后面加"?"采用非贪婪算法,即匹配尽量少的字符串 "x+"匹配一个或以上个"x"
? 匹配前面的子表达式一次或零次
?: 对后面得子表达式进行非获取匹配,即仅匹配不保存
| 或,可以连续使用 "x|y|z"匹配 x或 y或 z
{} {n}重复前一个表达式 n次,{n,}少于 n次,{n,m}大于 n次小于 m次 "\d{4}"匹配四个数字

非打印字符

这类特殊字符原本是字母,在表达特殊含义时需要用"\"转义。

特殊字符 含义
\d 匹配所有数字
\D 匹配非数字
\w 匹配数字字母或下划线
\W 匹配非数字字母或下划线
\s 匹配空格符、换行符、TAB、换页符
\S 匹配非空格符、换行符、TAB、换页符
\f 匹配一个换页符。
\n 匹配一个换行符。
\r 匹配一个回车符。
\t 匹配一个制表符。
\v 匹配一个垂直制表符。

JavaScript 中的应用

构建对象

构建一个正则对象有两种写法

  1. var reg = new RegExp("pattern", "flag")
  2. var reg = /pattern/flag

其中两个参数,pattern 接受一个正则表达式,也可以接受"$1"来调用第一个子表达式,flag 表示比对的方式
m:允许跨行检索
g:全局检索,通常只会匹配到第一个,全局检索可以匹配到所有情况
i:忽略大小写
var reg = new RegExp("abc", "mg")

属性

一个正则对象有四个属性。

方法

正则对象带有一些方法

在字符串的方法中也可以使用到正则表达式

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注