正则表达式
定义
正则表达式是一种描述字符串数据模式的方法,是检查、处理字符串的强力工具。
创建正则表达式
|
|
- 使用构造函数创建时,反斜杠的使用规则与往常相同。
- 使用双斜杠字面值创建时,不确定字符是否具有特殊含义,而不是字母、数字、空格式,只要在字符前加上反斜杠即可。
匹配测试
test方法
接受用户传递的字符串,并返回一个布尔值,表示字符串中是否包含能与表达式模式匹配的字符串。
exec方法
如果无法匹配模式则返回null,否则返回一个表示匹配字符串信息的对象。
exec方法返回的对象中包含index属性,表示字符串成功匹配的起始位置。
若正则表达式中包含圆括号的子表达式分组,与这些分组匹配的文本也会出现在数组中。
第一个元素是与整个模式匹配的字符串,
其后是与第一个分组匹配的部分字符串,然后是第二个分组如此类推。
字符组快捷写法
- \d --数字符号
- \w --字母和数字符号
- \s --空白符号(空格,制表符,换行符等)
- \D --非数字符号
- \W --非字母和数字符号
- \S --非空白符号
- . --除了换行符以外的任意符号
部分模式重复
- + --该元素至少重复一次
- * --该元素至少重复一次,同时可以匹配模式不存在的情况
- ? --可选,模式出现0次或1次
- { } --指明模式出现的次数。{4},4次。{2,4},2~4次。{,4},0~4次。{4.},至少4次以上。
边界
- ^ --字符始位置
- $ --字符结束位置
- \b --单词边界( \w 集合)
/^\d+$/:匹配一个或者多个数字组成的字符串。
/^!/ :匹配任何以感叹号开头的字符串。
/x^/ :不匹配任何字符串。
子表达式分组
如果一次性相想对多个元素使用*或者+,那么就需要使用分组。
选项模式
管道符号(|),表示从其左侧的模式和右侧的模式任意选择一个进行匹配。
用例
检查手机号码
|
|
获取URL的Query参数
|
|
拆分host后缀
|
|