什么是正则表达式?
正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容;正则表达式可以是一个简单的字符,或一个更复杂的模式。可用于所有文本搜索和文本替换的操作。
语法:
/正则表达式主体/修饰符(可选)
例:
var patt = /runoob/i
- /runoob/i 是一个正则表达式。
- runoob 是一个正则表达式主体 (用于检索)。
- i 是一个修饰符 (搜索不区分大小写)。
常用正则表达式符号
符号 | 说明 |
---|---|
literal | 匹配字符串的值 |
. | 匹配任意一个字符(换行符\n除外) |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结尾 |
[...] | 匹配[]中的任意一个字符 |
[x-y] | 匹配从字符x到y中的任意一个字符 |
[^...] | 不匹配此字符集中出现的任何一个字符 |
* | 匹配前面的正则表达式零次或多次 |
+ | 匹配前面的正则表达式一次或多次 |
? | 匹配前面的正则表达式零次或一次 |
{N} | 匹配前面的正则表达式N次 |
{M,N} | 匹配前面的正则表达式M次到N次 |
() | 匹配()中的正则表达式,并保存为子组 |
特殊字符
特殊字符 | 说明 |
---|---|
\d | 与[0-9]相同 |
\D | 与[^0-9]相同 |
\w | 与[A-Za-z0-9]相同 |
\W | 与[^A-Za-z0-9]相同 |
\s | 匹配任何空白字符,与[ \n\t\r\v\f]相同 |
\S | 与[^ \n\t\r\v\f]相同 |
正则表达式修饰符
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) |
m | 执行多行匹配 |
使用字符串方法
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
- search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
- replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
search() 方法使用正则表达式
例:使用正则表达式搜索 "Runoob" 字符串,且不区分大小写:
var str = "Visit Runoob!";
var n = str.search(/Runoob/i);
search() 方法使用字符串
search 方法可使用字符串作为参数。字符串参数会转换为正则表达式:
例:检索字符串中 "Runoob" 的子串:
var str = "Visit Runoob!";
var n = str.search("Runoob");
replace() 方法使用正则表达式
例:使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :
var str = document.getElementById("demo").innerHTML;
var txt = str.replace(/microsoft/i,"Runoob");
replace() 方法使用字符串
例:replace() 方法将接收字符串作为参数:
var str = document.getElementById("demo").innerHTML;
var txt = str.replace("Microsoft","Runoob");
网友评论