BadGirl_Xiao

导航

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编辑  收藏  举报