更新记录
- 2019.6.25 补充了一些使用到的匹配模式,如空格等。
正则
特殊字符含义:
字符 | 含义 | 字符 | 含义 |
---|
* | 匹配前面的子表达式零次或多次 | + | 匹配一次或多次 |
$ | 匹配输入字符串的结尾位置,设置RegExg对象的Multiline属性,则可匹配‘\n’或‘\r’ | ^ | 匹配字符串的开始位置,若在中括号中表示非(不匹配) |
? | 匹配前面的自表达式零次或一次 | | | 指明两项之间的一个选择 |
. | 匹配除换行符\n之外的任何单字符 | \ | 标记该字符为特殊字符,或原义字符 |
当要匹配以上这些特殊字符时,使用转义字符’’。比如\*
匹配字符*
限定符:指定一个给定组件必须要出现多少次才能满足
字符 | 含义 | 字符 | 含义 |
---|
* | 匹配零次或多次。等价{0,} | + | 匹配一次或多次。等价{1,} |
? | 匹配零次或一次.等价{0,1} | {n} | 表示n次 |
{n,} | 匹配至少n次 | {n,m} | 匹配至少n次最多m次 |
其他匹配模式
字符 | 含义 | 示例 | 描述 |
---|
(pattern) | 匹配pattern并获取 | | |
[XYZ] | 匹配其中的任意字符 | | |
(?:pattern) | 匹配pattern 不获取,供后续使用。 | | |
\b \B | \b 匹配一个单词的边界
\B 匹配给单词边界 | | |
(?=pattern) | 正向预查,在匹配到pattern 处开始查找字符串 | | |
\d \D | \d 匹配数字字符
\D 匹配非字符数字 | | |
(?!pattern) | 反向预查,在任何不匹配pattern 处开始查找字符串 | | |
\w \W | \w 匹配包括下划线的任何单词字符
\W 匹配任何非单词字符 | | |
\f | 匹配换页符 | | |
\n | 匹配换行符 | | |
\r | 匹配回车符 | | |
\t \v | \t 匹配一个水平制表符
\v 匹配一个垂直制表符 | | |
\s \S | \s 匹配一个空白字符,包括空格、制表符、换页符、换行符
\S 匹配非… | | |
正则示例
表达式 | 含义 | 表达式 | 含义 |
---|
^[a-zA-Z0-9_]{1,}\$ | 包含一个及以上的字母、数字或下划线的字符串 | ^[1-9][0-9]{0,}\$ | 所有的正整数 |
^\-{0,1}[0-9]{1,}\$ | 所有整数 | ^[-]?[0-9]+\.?[0-9]+\$ | 所有浮点数 |
javascript中正则表达式
修饰符 | 含义 |
---|
i | 忽略字符串的大小写 |
g | 执行全局匹配,查出所有匹配而非找到第一个后停止 |
m | 执行多想匹配 |
y | 执行粘性搜索,匹配从目标字符串的当前位置开始 |
[] | 表示查找某个范围内的字符 |
() | 查找指定的选型,可用 |
?=n | 匹配任何其后紧接指定字符串n的字符串, |
?!n | 匹配任何其后没有紧接指定字符串n的的字符串 |
RegExp对象方法
使用方式:可以处理字符串
let regex = new RegExp("a+b","g");
方法 | 作用 |
---|
compile() | 编译正则表达式 |
exec() | 检索指定的值,返回一个数组,未找到时返回null |
test() | 检索字符串中指定的值,返回true或false |
支持正则表达式的String对象方法
方法 | 作用 |
---|
search() | 检索与正则表达式想匹配的值,返回匹配到的索引,失败时返回-1 |
match() | 找到一个或多个表达式的匹配,返回一个数组,未找到时返回null |
replace() | 替换与正则表达式匹配的子串 |
split() | 按照提供的正则表达式把字符串分割成字符串数组 |