正则表达式(替换)引⽤
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小时内删除。
发表评论