JS正则表达式总结

Posted by Daisydan on January 12, 2016

JS正则表达式总结

正则表达式通常用于两种任务:1.验证,2.搜索/替换。

*字符类匹配

[...]	方括号内的任意字符
[^...]	不在方括号内的任意字符
.	除了换行符和其他Unicode行终止符之外的任意字符
\w	任何ASCII字符组成的单词,等价于[a-zA-Z0-9]
\W	任何不是ASCII字符组成的单词,等价于[^a-zA-Z0-9]
\s	任何Unicode空白符
\S	任何非Unicode空白符的字符
\d	任何ASCII数字,介于[0-9]
\D	除了ASCII数字之外的任何字符,等价于[^0-9]
\b	退格直接量

*重复字符匹配

{n,m}	匹配前一项至少n次,但不能超过m次
{n,}	匹配前一项n次或更多次
{n}	匹配前一项n次
	匹配前一项0次或者1次,也就是说前一项是可选的,等价于{0,1}
+	匹配前一项1次或多次,等价于{1,}
*	匹配前一项0次或多次,等价于{0,}

*正则表达式修饰符

i        执行不区分大小写的匹配
g        执行一个全局匹配,即找到所有匹配而非一次匹配
m        多行匹配模式,^匹配一行的开头和字符串开头,$匹配行的结束和字符串的结尾

*RegExp的方法

test():检索字符串中的指定值。返回值是布尔值。
exec():返回一个数组,数组中的第一个条目是第一个匹配,其他的是反向引用
compile():既可以改变检索模式,也可以添加或删除第二个参数。 

*String 对象中的正则表达式方法

match(pattern)	返回 pattern 中的子串或 null
replace(pattern, replacement)	用 replacement 替换 pattern
search(pattern)	返回字符串中 pattern 开始位置
split(pattern)	返回字符串按指定 pattern 拆分的数组

*特殊字符

var re = /(\w+)\s(\w+)/;
var str = 'John Smith';
str.replace(re, '$2, $1'); // "Smith, John"
RegExp.$1; // "John"
RegExp.$2; // "Smith"