Js 模式匹配
模式匹配:
什么是模式匹配:可以设置查找或替换的规则!
何时使用模式匹配:要查找的关键字可能发生有规律的变化。
如何使用模式匹配:
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的模式查找版。
posted on 2017-07-26 23:31 BadGirl_Xiao 阅读(445) 评论(0) 编辑 收藏 举报