正则表达式是由一个字符串形成的搜索模式
语法:
/正则表达式主体/修饰符(可选)
实例:
var patt=/Ezreal/i
/Ezreal/i是一个正则表达式。Ezreal是一个正则表达式的主体(用于检索)。i是一个修饰符(搜索不区分大小写)
字符串方法:
search():检索字符串中指定的子字符串。或者检索与正则表达式匹配的子字符串,并返回字串的起始位置。
replace():用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
<p>搜索字符串“zlx”,并显示出起始位置。</p>
<p>zlx is a man!</p>
<button>搜索</button>
<p id="demo"></p>
<script>
btn = document.querySelector('button');
btn.onclick = function () {
var str = "zlx is a man!";
var n = str.search(/zlx/i);
console.log('1');
document.getElementById("demo").innerHTML = n;
}
</script>
<p>搜索字符串“zlx”,并显示出起始位置。</p>
<p>替换 "man" 为 "cool guy" :</p>
<p>zlx is a man!</p>
<button>搜索</button>
<p id="demo"></p>
<script>
btn = document.querySelector('button');
btn.onclick = function () {
var str = "zlx is a man!";
var txt = str.replace(/man/i, "cool guy");
document.getElementById("demo").innerHTML = txt;
}
</script>
正则表达式修饰符
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配 |
g | 执行全局匹配(查找所有匹配而不是找到第一个就停止) |
m | 执行多行匹配 |
正则表达式模式
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符 |
[0-9] | 查找任何从0至9的数字 |
(X|Y) | 查找任何以| 分隔的选项 |
元字符是拥有特殊含义的字符
元字符 | 描述 |
---|---|
\d | 查找数字 |
\s | 查找空白字符 |
\b | 匹配单词边界 |
\uxxxx | 查找以十六进制数xxxx规定的Unicode字符 |
量词
元字符 | 描述 |
---|---|
n+ | 匹配任何包含至少一个 n 的字符串 |
n* | 匹配任何包含零个或多个 n 的字符串 |
n? | 匹配任何包含零个或一个 n 的字符串 |
使用 RegExp 对象
在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。
test() 方法
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
搜索字符串中的字符 “e”:
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
exec() 方法
exec() 方法用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
搜索字符串中的字母 “e”:
/e/.exec("The best things in life are free!");