模式匹配:
什么是模式匹配:可以设置查找或替换的规则!
何时使用模式匹配:要查找的关键字可能发生有规律的变化。
如何使用模式匹配:
1.先定义模式:/关键字/模式
比如:var reg=/no/i;
no 是要查找关键字原文,不加“” 引号
i 表示忽略大小写!
String类型中,提供了专门支持模式匹配的API。
按模式替换关键字:str = str.replace(reg,"新值");
默认replace仅替换第一个关键字!
要想全局替换,要在模式中定义“g”;
实例如下:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var str="No zuo no die";
var regular = /no/ig ; //定义一个规则 i 不区分大小写
//i忽略大小写, g全局查找/替换
str=str.replace(regular,"***");
console.log(str); // 如果是/no/ 小写no替换 /no/i No替换成*** g全局替换 No no全部替换
</script>
</body>
</html>
获得****所有*关键字的**内容**:var kwords = str.match(reg);
只能取得关键字的内容,无法确定每个关键字的位置!
kwords.length:返回找到的关键字个数。
**如果为找到,返回null**
只要有可能返回null!都要先判断 !=null ,再处理~
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var str="No zuo no die";
var regular = /龙虾/ig ; //定义一个规则 i 不区分大小写
var kwords = str.match(regular); //显示被替换的内容
//kwords = null
str=str.replace(regular,"***");
document.write(kwords+"<br/>");
document.write(str+"<br/>");
if(kwords!=null){ // 如果是/no/ 小写no替换 /no/i No替换成*** g全局替换 No no全部替换
document.write("共替换了"+kwords.length+"处");
//null.length
}else{
document.write("未找到");
}
</script>
</body>
</html>
var index = str.search(reg); 和indexOf完全相同~! 了解就好
indexOf 不支持模式查找! search其实是indexOf的模式查找版。