JS技术

javascript正则表达式的常用方法总结_Javascript教程(3)

字号+ 作者:H5之家 来源:H5之家 2015-09-29 13:05 我要评论( )

!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01//EN html head meta http-equiv=Content-Type content=text/html; charset=GB2312 / title正则表达式/title script language=JavaScript type=text/javascript functio

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <title>正则表达式</title>
    <script language="JavaScript" type="text/javascript">
    function regexp_str(){
      var getStr=document.getElementsByTagName("input")[0].value;
      var regexpStr;
      var searchType=document.getElementsByTagName("input")[1].value;
      if(searchType==1){ //是否大小写判断
        regexpStr=/cat/i;
      }
      else{ 
        regexpStr=/cat/;
        }
      var arr = getStr.search(regexpStr);
      if(arr==-1){ //没有找到返回-1
        alert("输入的字符串中没有出现cat");
      }
      else{ //找到返回第一次匹配的位置
        alert("第一个匹配cat的字符串出现位置:"+arr);
      }
    }
    function checkbox_value(){
      var searchType=document.getElementsByTagName("input")[1].value;
      if(searchType==1)
        searchType=0;
      else
        searchType=1;
      document.getElementsByTagName("input")[1].value=searchType;
    }
  </script>
  </head>
  <body>
    <input type="text">
    忽略大小写:<input type="checkbox" checked value="1" onchange="checkbox_value();">
    <input type="button" value="查询" onclick="regexp_str();">
  </body>
</html>

       例子:
代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <title>正则表达式</title>
    <script language="JavaScript" type="text/javascript">
    function regexp_str(){//匹配正则表达式函数
      var getStr=document.getElementsByTagName("input")[0].value;//取得输入
      var regexpStr,arr;
      var searchType=document.getElementsByTagName("input")[1].value;//是否全文搜索
      if(searchType==1){//全文搜索
        regexpStr=/cat/g;//g,全文搜索参数
        while ((arr = regexpStr.exec(getStr)) != null){//当还没匹配完之前
        alert(arr.index + "-" + arr.lastIndex + arr + "---"+arr.input);
//index是找到匹配的起始位置;lastIndex是找到匹配的末位置+1.比如这个例子:要匹配cat,而你输入的是1cat2cat3,则第一次匹配index为1,lastIndex为4.第二次匹配index为5,lastIndex为8.从这里也可以看出,lastIndex是配置了全文搜索后下一个搜索的开始位置.
//arr是输出整个数组,由于只有一个长度,输出的就是匹配的字符串
//input属性是在这里是输入的字符串,广义来说,就是被搜索的全文,比如上面举例的1cat2cat3
        }
      }
      else{ //一次匹配
        regexpStr=/cat/;
        arr = regexpStr.exec(getStr);
        alert(arr.index + "-" + arr.lastIndex + arr + "---"+arr.input); //由于只是一次匹配,就不要像上面那样用循环了(不然出现匹配情况,每次始终从头开始搜索,不能达到null,陷入死循环)
        }   
    }
    function checkbox_value(){//改变checkbox的值
      var searchType=document.getElementsByTagName("input")[1].value; //取得当前checkbox值
      if(searchType==1) //checkbox值为1改为0,否则改为1
        searchType=0;
      else
        searchType=1;
      document.getElementsByTagName("input")[1].value=searchType;
    }
  </script>
  </head>
  <body>
    <input type="text">
    全文搜索:<input type="checkbox" checked value="1" onchange="checkbox_value();">
    <input type="button" value="查询" onclick="regexp_str();">
  </body>
</html>

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JavaScript入门教程(二)_javascript教程教程

    JavaScript入门教程(二)_javascript教程教程

    2015-10-10 14:25

  • JavaScript入门教程(五)_javascript教程教程

    JavaScript入门教程(五)_javascript教程教程

    2015-10-10 14:21

  • JavaScript入门教程(四)_javascript教程教程

    JavaScript入门教程(四)_javascript教程教程

    2015-10-10 14:19

  • JavaScript入门教程(三)_javascript教程教程

    JavaScript入门教程(三)_javascript教程教程

    2015-10-10 14:17

网友点评