目录:
---------- 1、什么是 RegExp? 2、RegExp语法 3、使用字符串方法 4、search() 方法使用正则表达式 5、replace() 方法使用正则表达式 6、各种匹配字符 ------------------1、什么是 RegExp?
RegExp 是正则表达式的缩写。当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。
正则表达式可以是一个简单的字符,或一个更复杂的模式。
正则表达式可用于所有文本搜索和文本替换的操作。
2、语法
正则表达式主体/修饰符(可选)
其中修饰符是可选的。
3、使用字符串方法
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
4、search() 方法使用正则表达式
实例
使用正则表达式搜索 “Runoob” 字符串,且不区分大小写:
var str = “Visit Runoob!”;
var n = str.search(/Runoob/i);
输出结果为:6
5、replace() 方法使用正则表达式
实例
使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :
var str = document.getElementById(“demo”).innerHTML;
var txt = str.replace(/microsoft/i,“Runoob”);
结果输出为: Visit Runoob!
注意:
正则表达式参数可用在以上方法中 (替代字符串参数)。 正则表达式使得搜索功能更加强大(如实例中不区分大小写)。修饰符
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配。 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
m | 执行多行匹配。 |
基本通配符
元字符 | 描述 |
---|---|
. | 查找单个字符,除了换行和行结束符。 |
\w | 匹配单词字符。 |
\d | 匹配数字。 |
\s | 匹配空白字符。 |
\b | 匹配单词边界。 |
\n | 匹配换行符。 |
\f | 匹配换页符。 |
\r | 匹配回车符。 |
\t | 匹配制表符。 |
$ | 匹配字符串结束。 |
^ | 匹配字符串开始。 |
\0 | 匹配 NUL 字符。 |
\v | 匹配垂直制表符。 |
\xxx | 匹配以八进制数 xxx 规定的字符。 |
\xdd | 匹配以十六进制数 dd 规定的字符。 |
\uxxxx | 匹配以十六进制数 xxxx 规定的 Unicode 字符。 |
重复限定符
元字符 | 限定规则 |
---|---|
n+ | 将n重复一次或更多次 |
n* | 将n重复零次或更多次 |
n? | 将n重复一次或一次 |
n{X} | 将n重复x次 |
n{X,Y} | 将n重复x~y次 |
n{X,} | j将n重复x次或者更多次。 |
^n | 查找回车符。 |
?=n | 查找制表符。 |
\0 | 查找 NUL 字符。 |
\v | 查找垂直制表符。 |
\xxx | 查找以八进制数 xxx 规定的字符。 |
\xdd | 查找以十六进制数 dd 规定的字符。 |
\uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 符。 |
正则表达式表单验证实例:
代码引用
选择符`[]`
选择符[]
:表示从普通字符组成的集合中选择一个字符
例如:模式/[abc]/可以匹配a,b,c;
模式/[a-z]/可以匹配a到z任意一个小写字母;
转义符“\”
查找元字符本身,取消字符特殊意义例如:\. \* \\
分支符“|”
前后两个分支是“或”关系。
例如:\(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8}
结果:(024)87654321或者024-87654321
解析:
\d{2}
:{2}让\d
进行了两次(一个任意的两位数);
\)
:为了显示出“()”;
[- ]
:要么匹配-
要么匹配空格;
[- ]?
:要么匹配[- ]
的结果要么就不匹配;
d{8}
:{8}让\d
进行8次