js的replace()方法实现全部替换

2017-06-19  本文已影响0人  shallwego_

1、replace()

JS 字符串有replace() 方法。但这个方法只会对匹配到的第一个字串替换。


2、如果要全部替换的话,JS 没有提供replaceAll这样的方法。

(1)使用正则表达式可以达成Replace 的效果:

 str.replace(/word/g,"Excel")

g 的意义是:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

(2)以上写法有个类同的写法:

 str.replace(new RegExp("word","gm"),"Excel")
**g** 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
**m** 执行多行匹配。
注意:#####在使用正则表达式时,如果要替换的字符串中包含特殊字符,需要使用转义字符。

例如:要将如下字符串中的“$”替换为换行符时,要使用转义字符。

var a="检查日期:20170102;检查医院:中山;检查项目:CT^&^
检查日期:20170104;检查医院:中山;检查项目:CT^&^
检查日期:20170115;检查医院:中山;检查项目:CT^&^
检查日期:20170121;检查医院:中山;检查项目:CT"
alert(a.replace(/\^&\^/g,"<br>"));

3、除此之外,也可以添加 Stirng对象的原型方法:

String.prototype.replaceAll  = function(s1,s2){   
      return this.replace(new RegExp(s1,"gm"),s2);   
} 

这样就可以像使用replace 方法一样使用replaceAll了

str.replaceAll("word","Excel");



正则表达式特殊字符

特别字符 说明
$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,请使用 $。
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
. 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。
[ ] 标记一个中括号表达式的开始。要匹配 [,请使用 [。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n' 匹配字符 ‘n'。'\n' 匹配换行符。序列 ‘\' 匹配 “\”,而 ‘(' 则匹配 “(”。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。
{ } 标记限定符表达式的开始。要匹配 {,请使用 {。
| 指明两项之间的一个选择。要匹配 |,请使用 &#124;。
上一篇 下一篇

猜你喜欢

热点阅读