replace中替换、搜索的使用
<script language="javascript"> var strObj="空谷悠悠喜欢题足球,空谷悠悠喜欢打乒乓球"; alert(strObj); newStr = strObj.replace("空谷悠悠","小谷"); alert(newStr); </script>
返回根据正则表达式进行文字替换后的字符串的复制。
stringObj.replace(rgExp, replaceText)
?
?
?
我们接着再看一个有趣的程序:
<script language="javascript"> var reg=new RegExp("d","g"); var str="abd1afa4sdf"; str.replace(reg,function(){alert(arguments.length);}); </script>
?
<script language="javascript"> var reg=new RegExp("d","g"); var str="abd1afa4sdf"; str.replace(reg,function(){alert(arguments.length);}); </script>
?
?我们惊奇的发现,匿名函数竟然被执行了二次,并且在函数里还带有三个参数,为什么会执行二次呢??这个很容易想到,因为我们写的正则表达式是匹配单个数字的,而被检测的字符串刚好也有二个数字,故匿名函数被执行了二次。。在匿名函数内部的那三个参数到底是什么内容呢??为了弄清这个问题,我们看下面的代码:
?
?
?
?
?进观察我们发现,第一个参数表示匹配到的字符,第二个参数表示匹配时的字符最小索引位置,第三个参数表示被匹配的字符串。其实这些参数的个数,还会随着子匹配的变多而变多。
?
?
?