1、replace()
JS 字符串有replace() 方法凉袱。但這個(gè)方法只會(huì)對(duì)匹配到的第一個(gè)字串替換闷板。
- str.replace("word","Excel")
2、如果要全部替換的話蛹头,JS 沒(méi)有提供replaceAll這樣的方法顿肺。
(1)使用正則表達(dá)式可以達(dá)成Replace 的效果:
str.replace(/word/g,"Excel")
g 的意義是:執(zhí)行全局匹配(查找所有匹配而非在找到第一個(gè)匹配后停止)。
(2)以上寫法有個(gè)類同的寫法:
str.replace(new RegExp("word","gm"),"Excel")
**g** 執(zhí)行全局匹配(查找所有匹配而非在找到第一個(gè)匹配后停止)渣蜗。
**m** 執(zhí)行多行匹配屠尊。
注意:#####在使用正則表達(dá)式時(shí),如果要替換的字符串中包含特殊字符耕拷,需要使用轉(zhuǎn)義字符讼昆。
例如:要將如下字符串中的“$”替換為換行符時(shí),要使用轉(zhuǎn)義字符骚烧。
var a="檢查日期:20170102浸赫;檢查醫(yī)院:中山;檢查項(xiàng)目:CT^&^
檢查日期:20170104赃绊;檢查醫(yī)院:中山既峡;檢查項(xiàng)目:CT^&^
檢查日期:20170115;檢查醫(yī)院:中山碧查;檢查項(xiàng)目:CT^&^
檢查日期:20170121运敢;檢查醫(yī)院:中山;檢查項(xiàng)目:CT"
alert(a.replace(/\^&\^/g,"<br>"));
3忠售、除此之外传惠,也可以添加 Stirng對(duì)象的原型方法:
String.prototype.replaceAll = function(s1,s2){
return this.replace(new RegExp(s1,"gm"),s2);
}
這樣就可以像使用replace 方法一樣使用replaceAll了
str.replaceAll("word","Excel");
正則表達(dá)式特殊字符
特別字符 | 說(shuō)明 |
---|---|
$ | 匹配輸入字符串的結(jié)尾位置。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性稻扬,則 $ 也匹配 ‘\n' 或 ‘\r'卦方。要匹配 $ 字符本身,請(qǐng)使用 $腐螟。 |
( ) | 標(biāo)記一個(gè)子表達(dá)式的開(kāi)始和結(jié)束位置愿汰。子表達(dá)式可以獲取供以后使用。要匹配這些字符乐纸,請(qǐng)使用 ( 和 )衬廷。 |
* | 匹配前面的子表達(dá)式零次或多次。要匹配 * 字符汽绢,請(qǐng)使用 *吗跋。 |
+ | 匹配前面的子表達(dá)式一次或多次。要匹配 + 字符,請(qǐng)使用 +跌宛。 |
. | 匹配除換行符 \n之外的任何單字符酗宋。要匹配 .,請(qǐng)使用 \疆拘。 |
[ ] | 標(biāo)記一個(gè)中括號(hào)表達(dá)式的開(kāi)始蜕猫。要匹配 [,請(qǐng)使用 [哎迄。 |
? | 匹配前面的子表達(dá)式零次或一次回右,或指明一個(gè)非貪婪限定符。要匹配 ? 字符漱挚,請(qǐng)使用 ?翔烁。 |
將下一個(gè)字符標(biāo)記為或特殊字符、或原義字符旨涝、或向后引用蹬屹、或八進(jìn)制轉(zhuǎn)義符。例如白华, ‘n' 匹配字符 ‘n'慨默。'\n' 匹配換行符。序列 ‘\' 匹配 “\”衬鱼,而 ‘(' 則匹配 “(”业筏。 | |
^ | 匹配輸入字符串的開(kāi)始位置,除非在方括號(hào)表達(dá)式中使用鸟赫,此時(shí)它表示不接受該字符集合蒜胖。要匹配 ^ 字符本身,請(qǐng)使用 ^抛蚤。 |
{ } | 標(biāo)記限定符表達(dá)式的開(kāi)始台谢。要匹配 {,請(qǐng)使用 {岁经。 |
| | 指明兩項(xiàng)之間的一個(gè)選擇朋沮。要匹配 |,請(qǐng)使用 |缀壤。 |