正则表达式概念
用于定义一些字符串的规则,计算机可以根据正则表达式来检查一个字符串是否符合规则或者将字符串符合规则的内容提取出来。
JavaScript中的正则表达式
- 在JavaScript中,RegExp 对象表示正则表达式
- JS中的RegExp 对象是一个function类型,它是Function的一个实例
- 由RegExp构造出来的实例对象是一个普通的对象,为Object的实例
在js中声明正则表达式的方法
方式一:
var 变量名=new RegExp(参数A,参数B);
注意:这里的参数A和参数B必须是字符串的形式,参数A表示正则表达式,参数B表示匹配模式;例如:
var reg=new RegExp("a","g")
方式二:
var 变量名=/参数A/参数B;
这里的参数A和参数B就不是字符串的形式,参数A表示正则表达式,参数B表示匹配模式;例如:
var reg=/a/g
备注:
当使用构造函数创造正则对象时,特殊字符需要转义(在前面加反斜杠 \),而字面量形式就不用;
直接执行RegExp函数也能创建一个正则表达式,如:var n=RegExp('\\d' , 'g')
正则表达式的语法
1.修饰符
执行对大小写不敏感的匹配。 | |
执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 | |
m | 执行多行匹配。 |
2.中括号
查找方括号之间的任何字符。 | |
查找任何不在方括号之间的字符。 | |
[0-9] | 查找任何从 0 至 9 的数字。 |
[a-z] | 查找任何从小写 a 到小写 z 的字符。 |
[A-Z] | 查找任何从大写 A 到大写 Z 的字符。 |
[A-z] | 查找任何从大写 A 到小写 z 的字符。 |
(red|blue|green) | 查找任何指定的选项。 |
3.元字符
查找非空白字符。 | |
匹配单词边界。 | |
匹配非单词边界。 | |
查找换行符。 | |
查找单个字符,除了换行和行结束符。 | |
查找英文数字下划线之一 | |
查找非单词字符。 | |
查找数字。 | |
查找非数字字符。 | |
查找空白字符。 |
4.量词
匹配任何包含至少一个 n 的字符串。 例如,/a+/ 匹配 "candy" 中的 "a","caaaaaaandy" 中所有的 "a"。 | |
匹配任何包含零个或多个 n 的字符串。 例如,/bo*/ 匹配 "A ghost booooed" 中的 "boooo","A bird warbled" 中的 "b", 但是不匹配 "A goat grunted"。 | |
匹配任何包含零个或一个 n 的字符串。 例如,/e?le?/ 匹配 "angel" 中的 "el","angle" 中的 "le"。 | |
匹配包含 X 个 n 的序列的字符串。 例如,/a{2}/ 不匹配 "candy," 中的 "a",但是匹配 "caandy," 中的两个 "a", 且匹配 "caaandy." 中的前两个 "a"。 | |
X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。 例如,/a{2,}/ 不匹配 "candy" 中的 "a",但是匹配 "caandy" 和 "caaaaaaandy." 中所有的 "a"。 | |
X 和 Y 为正整数。前面的模式 n 连续出现至少 X 次,至多 Y 次时匹配。 例如,/a{1,3}/ 不匹配 "cndy",匹配 "candy," 中的 "a","caandy," 中的两个 "a", 匹配 "caaaaaaandy" 中的前面三个 "a"。注意,当匹配 "caaaaaaandy" 时, 即使原始字符串拥有更多的 "a",匹配项也是 "aaa"。 | |
匹配任何结尾为 n 的字符串。 | |
匹配任何开头为 n 的字符串。 | |
匹配前面 n的字符串。 | |
匹配任何其后紧接指定字符串 n 的字符串。 | |
匹配任何其后没有紧接指定字符串 n 的字符串。 |
Js中正则表达式的几种使用方式
方式一: 通过正则对象本身的方法使用
方法 | 描述 |
exec | 检索字符串中指定的值,返回找到的值,确定其位置,每调用一次返回一个值,依次按顺序返回,如果没有检索到则返回null |
test | 检索字符串中指定的值,返回为true或false |
toString | 返回正则表达式的字符串 |
方法 | 描述 |
search | 检索与正则表达式的字符,返回下标 |
match | 找到一个或多个符合正则表达式的字符,返回一个数组 |
replace | 用新字符替换符合正则表达式的字符,返回新字符串 |
split | 把字符串以符合正则表达式字符分割为数组 |
方式三:不通过代码,直接进行使用
正则对象继承的属性和方法
1.属性与方法
2.常用属性与作用
属性 | 描述 |
global | RegExp对象具有标志g。 |
ignoreCase | RegExp对象具有标志i。 |
lastIndex | 一个整数,标示开始下一次匹配的字符位置。 |
multiline | RegExp对象具有标志m。 |
source | 正则表达式的源文本。 |
注意:有些特殊符号需要转义:比如\'------->转义的结果为'