<p>javascript 正则表达式<br /> <br /> 很长时间没看 正则表达式了,碰巧今天用到,温故知新了一把 看书学习吧<br /> 50% 的举一反三练习中的原创。<br /> <br /> 一 javascript正则表达式的基本知识<br /> <br /> 1 javascript 正则对象创建 和用法<br /> <br /> 声明javascript 正则表达式<br /> <br /> var reCat = new RegExp(&quot;cat&quot;);<br /> 你也可以 <br /> var reCat = /cat/; //Perl 风格 (推荐)<br /> <br /> 2 学习最常用的 test exec match search replace split 6个方法<br /> <br /> 1) test 检查指定的字符串是否存在<br /> <br /> var data = &quot;123123&quot;;<br /> var reCat = /123/gi;<br /> alert(reCat.test(data)); //true<br /> <br /> //检查字符是否存在 g 继续往下走 i 不区分大小写<br /> <br /> 2) exec 返回查询值<br /> <br /> var data = &quot;123123,213,12312,312,3,Cat,cat,dsfsdfs,&quot;;<br /> var reCat = /cat/i;<br /> alert(reCat.exec(data)); //Cat<br /> <br /> 3)match 得到查询数组<br /> <br /> var data = &quot;123123,213,12312,312,3,Cat,cat,dsfsdfs,&quot;;<br /> var reCat = /cat/gi;<br /> var arrMactches = data.match(reCat)<br /> <br /> for (var i=0;i &lt; arrMactches.length ; i++)<br /> {<br /> alert(arrMactches[i]); //Cat cat<br /> }<br /> <br /> 4) search 返回搜索位置 类似于indexof<br /> <br /> var data = &quot;123123,213,12312,312,3,Cat,cat,dsfsdfs,&quot;;<br /> var reCat = /cat/gi;<br /> alert(data.search(reCat)); //23<br /> <br /> <br /> 5) replace 替换字符 利用正则替换<br /> <br /> var data = &quot;123123,213,12312,312,3,Cat,cat,dsfsdfs,&quot;;<br /> var reCat = /cat/gi;<br /> alert(data.replace(reCat,&quot;libinqq&quot;));<br /> <br /> 6)split 利用正则分割数组<br /> <br /> var data = &quot;123123,213,12312,312,3,Cat,cat,dsfsdfs,&quot;;<br /> var reCat = /,/;<br /> var arrdata = data.split(reCat);<br /> <br /> for (var i = 0; i &lt; arrdata.length; i++)<br /> {<br /> alert(arrdata[i]);<br /> }<br /> <br /> 3 学习下 简单类 负向类 范围类 组合类<br /> <br /> //简单类<br /> var data = &quot;1libinqq,2libinqq,3libinqq,4libinqq&quot;;<br /> var reCat = /[123]libinqq/gi;<br /> var arrdata = data.match(reCat);<br /> <br /> for (var i = 0; i &lt; arrdata.length; i++)<br /> {<br /> alert(arrdata[i]); // 1libinqq 2libinqq 3libinqq<br /> }<br /> <br /> //负向类<br /> var data = &quot;alibinqq,1libinqq,2libinqq,3libinqq,4libinqq&quot;; //u0062cf<br /> var reCat = /[^a123]libinqq/gi;<br /> var arrdata = data.match(reCat);<br /> <br /> for (var i = 0; i &lt; arrdata.length; i++)<br /> {<br /> alert(arrdata[i]); //4libinqq<br /> }<br /> <br /> //范围类<br /> var data = &quot;libinqq1,libinqq2,libinqq3,libinqq4,libinqq5&quot;; //u0062cf<br /> var reCat = /libinqq[2-3]/gi;<br /> var arrdata = data.match(reCat);<br /> <br /> for (var i = 0; i &lt; arrdata.length; i++)<br /> {<br /> alert(arrdata[i]); // libinqq2 libinqq3<br /> }<br /> <br /> //组合类<br /> var data = &quot;a,b,c,w,1,2,3,5&quot;; //u0062cf<br /> var reCat = /[a-q1-4n]/gi;<br /> var arrdata = data.match(reCat);<br /> <br /> for (var i = 0; i &lt; arrdata.length; i++)<br /> {<br /> alert(arrdata[i]); // a b c 1 2 3<br /> }<br /> </p>
返回顶部 留言