json_js 字符替换replace()函数用法详解

更新时间:2017-12-06    来源:php函数    手机版     字体:

【www.bbyears.com--php函数】

replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身

方式一,最简单常用的方式

 代码如下

<script language="javascript">  
var stringObj="终古人民共和国,终古人民";  
 
//替换错别字“终古”为“中国”  
//并返回替换后的新字符  
//原字符串stringObj的值没有改变  
var newstr=stringObj.replace("终古","中国");  
alert(newstr);  
</script> 

方式二 ,采用固定参数的回调函数

 代码如下

var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3});
alert(rep2);

方式三,采用非固定参数的回调函数

 代码如下

var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];});
alert(rep3);

方法四,正则模式替换

 代码如下


//把word-word转化为wordWord
function camelize(s){
return s.replace(/-(w)/g, function(strMatch, p1){
return p1.toUpperCas();
});
}

如果

有N的N次方个错别字,是不是也要执行N的N次方replace方法来替换掉错别字呢??呵,不用怕,有了正则表达式之后不用一个错别字要执行一次replace方法。。程序经过改进之后的代码如下

Js代码

 代码如下 <script language="javascript">  
var reg=new RegExp("终古","g"); //创建正则RegExp对象  
var stringObj="终古人民共和国,终古人民";  
var newstr=stringObj.replace(reg,"中国");  
alert(newstr);  
</script> 

在使用过程中自己碰的问题解析

 代码如下 str=str.replace("hand","hand.gif");

输出:hand.gif hand hand

只替换了一次。。。:(

于是写

 代码如下 str = str.replace(/hand/,"hand.gif")

无效。。。
全部替换要加g,

 代码如下 str = str.replace(/hand/g,"hand.gif")

还是不行:(

后来百度,google都找到了得到了结果是原来要用()括起来,才会替换()里的东东。正确的写法如下:

 代码如下

str = "hand hand hand";
str=str.replace(/(hand)/g,"hand.gif");  
document.write(str); 
正确输出:hand.gif hand.gif hand.gif。

JS的正则另一种写法是使用RegExp:

 代码如下 如str=str.replace(/(hand)/g,"hand.gif");
等同于:
reg = new RegExp("(hand)","g");
   str = str.replace(reg,"hand.gif");

本文来源:http://www.bbyears.com/jiaocheng/37561.html

猜你感兴趣