正则表达式(替换)引⽤
replace⽅法的语法是:place(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查到的字符串。。为了帮助⼤家更好的理解,下⾯举个简单例⼦说明⼀下
Js代码
1.    <script language="javascript">
2.    var stringObj="终古⼈民共和国,终古⼈民";
3.
4.    //替换错别字“终古”为“中国”
5.    //并返回替换后的新字符
6.    //原字符串stringObj的值没有改变
7.    var place("终古","中国");
8.    alert(newstr);
9.    </script>
终古”为“中国”
的值没有改变
中国");
⽐我聪明的你,看完上⾯的例⼦之后,会发现第⼆个错别字“终古”并没有被替换成“中国”,我们可以执⾏⼆次replace⽅法把第⼆个错别
字“终古”也替换掉,程序经过改进之后如下:
Js代码
1.    <script language="javascript">
2.    var stringObj="终古⼈民共和国,终古⼈民";
3.
4.    //替换错别字“终古”为“中国”
5.    //并返回替换后的新字符
6.    //原字符串stringObj的值没有改变
7.    var place("终古","中国");
8.
9.    place("终古","中国");
10. alert(newstr);
11. </script>
终古”为“中国”
的值没有改变
中国");
我们可以仔细的想⼀下,如果有N的N次⽅个错别字,是不是也要执⾏N的N次⽅replace⽅法来替换掉错别字呢??呵,不⽤怕,有了正则表达式之后不⽤⼀个错别字要执⾏⼀次replace⽅法。。程序经过改进之后的代码如下
Js代码
1 2 3 4 5 6 7 8 9 10 111.    <script language="javascript">
2.    var reg=new RegExp("终古","g"); //创建正则RegExp对象
3.    var stringObj="终古⼈民共和国,终古⼈民";
4.    var place(reg,"中国");
5.    alert(newstr);
正则匹配到第一个关键字就停止6.    </script>
创建正则RegExp对象
上⾯讲的是replace⽅法最简单的应⽤,不知道⼤家有没有看懂??下⾯开始讲稍微复杂⼀点的应⽤。。
⼤家在⼀些⽹站上搜索⽂章的时候,会发现这么⼀个现象,就是搜索的关键字会⾼亮改变颜⾊显⽰出来??这是怎么实现的呢??其实我们可以⽤正则表达式来实现,具体怎么样实现呢?简单的原理请看下⾯的代码
Js代码
上⾯的程序缺少互动性,我们再改进⼀下程序,实现可以⾃主输⼊要查的字符
Js代码
1.    <script language="javascript">
2.    var s=prompt("请
1 2 3 4 5 6 7 8 91.    <script language="javascript">
2.    var str="中华⼈民共和国,中华⼈民共和国";
3.    var place(/(⼈)/g,"<font color=red>$1</font>");
4.    document.write(newstr);
5.    </script>
输⼊在查的字符","⼈");
3.    var reg=new RegExp("("+s+")","g");
4.    var str="中华⼈民共和国,中华⼈民共和国";
5.    var place(reg,"<font color=red>$1</font>");
6.    document.write(newstr);
7.    </script>
  可能⼤家都会对$1这个特殊字符表⽰什么意思不是很理解,其实$1表⽰的就是左边表达式中括号内的字符,即第⼀个⼦匹配,同理可得$2表⽰第⼆个⼦匹配。。什么是⼦匹配呢??通俗点讲,就是左边每⼀个括号是第⼀个字匹配,第⼆个括号是第⼆个⼦匹配。。
  当我们要把查到的字符进⾏运算的时候,怎么样实现呢??在实现之前,我们先讲⼀下怎么样获取某⼀个函数的参数。。在函数Function的内部,有⼀个arguments集合,这个集合存储了当前函数的所有参数,通过arguments可以获取到函数的所有参数,为了⼤家理解,请看下⾯的代码
Js代码
1.    <script language="javascript">
2.    function test(){
3.      alert("参数个数:"+arguments.length);
4.      alert("每⼀个参数的值:"+arguments[0]);
5.      alert("第⼆个参数的值"+arguments[1]);
6.      //可以⽤for循环读取所有的参数
7.    }
8.
9.    test("aa","bb","cc");
10. </script>
alert("
alert("
alert("
//循环读取所有的参数
看懂上⾯的程序之后,我们再来看下⾯⼀个有趣的程序
Js代码
1.    <script language="javascript">
2.    var reg=new RegExp("\\d","g");
3.    var str="abd1afa4sdf";
4.    place(reg,function(){alert(arguments.length);});
5.    </script>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。