js的replace字符替换方法的另类应用

发布时间:2020-12-21编辑:脚本学堂
本文介绍下,js中replace方法的应用实例,replace是个不错的字符替换方法,有需要的朋友,可以参考下。

本文介绍js中replace方法的用法。
开始使用:
 

复制代码 代码示例:
str=str.replace("hand","hand.gif");

输出:hand.gif hand hand
只替换了一次。
想到用正则,因为replace本来就可以用正则替换。
返回根据正则表达式进行文字替换后的字符串的复制。
stringObj.replace(rgExp, replaceText)
于是写
 

复制代码 代码示例:
str = str.replace(/hand/,"hand.gif")

无效。
全部替换要加g,
 

复制代码 代码示例:
str = str.replace(/hand/g,"hand.gif")

还是不行。
参考了javascript的replace方法与正则表达式后,终于明白,原来要用()括起来,才会替换()里的东东。

正确的写法如下:
 

复制代码 代码示例:
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');

reg需要动态生成时更适合使用这种方式。

扩展写法:
 

复制代码 代码示例:

str = "hand'( hand'( hand'(";
str=str.replace(/(hand'()/g,"hand.gif"); 
document.write(str);

str = 'hand'( hand'( hand'(';
str=str.replace(/(hand'()/g,"hand.gif"); 
document.write(str);