正则表达式是一种用于处理字符串匹配的强大工具,正则的核心在于匹配语法。
以下是常用的匹配规则
. 除了换行符之外的任意一个字符
\ 转义符,取消后面一个字符的含义,使其成为一个普通字符
[] 括号里的任意一个字符
[^] 不再括号里的任意一个字符
\d 数字0-9集合中的任意一个
\D 非数字集合中的任意一个
\w 数字、字母、下划线集合中的任意一个
\W 非数字、非字母、非下划线集合中的任意一个
\s 一个空白字符(即一个空格)
\S 非空白字符(空格)的任意一个字符
^ 表示开头
$ 表示结尾
====================================
* 匹配前面的字符0次或任意多次,如果匹配0次即是''
+ 匹配前面的字符至少1次
? 匹配前面的字符0次或1次,如果匹配0次即是''
{10} 匹配前面的字符连续10次
{2,3} 匹配前面的字符至少2次,至多3次
{2,} 匹配前面的字符至少2次
| 表示或,注意此符号两边的匹配范围是尽量长的(贪婪)
() 分组
作用1: 将多个项包围在一起组成一个独立的操作单元 (hello){2}匹配两个连续的hello字符串
作用2: 可以用于声明关注的某些项,并可以通过$1 $2...的方式来引用,以便进一步通过运算处理
var phone1 = '18827368865';
var phonePattern = /(\d{3})(\d{4})(\d{4})/;
var phone2 = phone1.replace(phonePattern, function (result, $1, $2, $3) {
return $1 + '-' + $2 + '-' + $3;
});
console.log(phone2);