js正则表达式使用总结

先发一个比较666的正则表达式:

Array.reverse().join(",").match(/([^,](?!.*\1)/ig).reverse();

这个是数组去重的正则表达式,面试的时候用这个绝对一级棒!~

具体说一下正则表达式的用法

1.在表达式中有特殊意义,需要添加 “\” 才能匹配该字符本身的字符汇总

^: 匹配的是字符的开头,在多行检索中,匹配的是一行的开头 。要匹配 “^” 字符本身,请使用 “\^”
注:如果^是在中括号中,代表匹配非中括号中的所有内容,例如[^\d]匹配的是所有非数字的字符。

$: 匹配的是字符的结尾,在多行检索中,匹配的是一行的结尾 。要匹配 “$” 字符本身,请使用 “\$”

( ): 分组.将几个项目分为一个单元.这个单元可由 *、+、?和|等符号使用,而且还可以记住和这个组匹配的字符以供此后引。要匹配小括号,请使用 “\(” 和 “\)”

[ ]: 用来自定义能够匹配 ‘多种字符’ 的表达式。要匹配中括号,请使用 “\[” 和”\ ]”

{ }:修饰匹配次数的符号。要匹配大括号,请使用 “\{” 和 “\}”

.:匹配除了换行符(/n)以外的任意一个字符。要匹配小数点本身,请使用 “\.”

?:修饰匹配次数为 0 次或 1 次。要匹配 “?” 字符本身,请使用 “\?”

+: 修饰匹配次数为至少 1 次。要匹配 “+” 字符本身,请使用 “\+”

*: 修饰匹配次数为 0 次或任意次。要匹配 “*” 字符本身,请使用 “\*”

|: 左右两边表达式之间 “或” 关系。匹配 “|” 本身,请使用 “\|”

2.转义字符

\f: 换页符

\n: 换行符

\r: 回车

\t: 制表符

\v: 垂直制表符

\b: 匹配的是一个词语的边界.简而言之就是位于字符\w 和 \w之间的位置(注意:[\b]匹配的是退格符)

\B: 匹配的是非词语的边界的字符

\ /: 一个 “/” 直接量

\ \: 一个”\”直接量

3.能够与’多种字符’匹配的表达式

正则表达式中的一些表示方法,可以匹配 ‘多种字符’ 其中的任意一个字符。比如,表达式 “\d” 可以匹配任意一个数字。虽然可以匹配其中任意字符,但是只能是一个,不是多个。这就好比玩扑克牌时候,大小王可以代替任意一张牌,但是只能代替一张牌。

[…]: 位于括号之内的任意字符

例如[abc]匹配的是a或b或c,[a-z]匹配的是a到z之间的任意一个字符。

[^…]: 不在括号之中的任意字符

这个也好理解,比如[abc]就是匹配除了a或b或c之外的任意字符。

.: 除了换行符之外的任意字符,等价于[^\n]

\w: 任何单字字符, 等价于[a-zA-Z0-9]

\W: 任何非单字字符,等价于[^a-zA-Z0-9]

\s: 任何空白符,等价于[\ t \ n \ r \ f \ v]

\S: 任何非空白符,等价于[^\ t \ n \ r \ f \ v]

\d: 任何数字,等价于[0-9]

\D: 除了数字之外的任何字符,等价于[^0-9]

4.修饰匹配次数的特殊符号

{n}: 匹配前一项n次,比如:”\w{2}”相当于”\w\w”;”a{5}” 相当于”aaaaa”

{m,n}: 匹配前一项至少m次,至多n次,比如:”ba{1,3}”可以匹配”ba”或”baa”或”baaa”

{m,}: 匹配前一项至少m次,比如:”\w\d{2,}”可以匹配”a12”,”_456”,”M12344”…

?: 匹配前一项0次或1次,也就是说前一项是可选的. 等价于 {0, 1}

+: 匹配前一项1次或多次,等价于{1,}

*: 匹配前一项0次或多次.等价于{0,}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值