1、replace()
JS 字符串有replace() 方法。但这个方法只会对匹配到的第一个字串替换。
- str.replace("word","Excel")
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' 匹配换行符。序列 ‘\' 匹配 “\”,而 ‘(' 则匹配 “(”。 | |
^ | 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。 |
{ } | 标记限定符表达式的开始。要匹配 {,请使用 {。 |
| | 指明两项之间的一个选择。要匹配 |,请使用 |。 |