js使用正則實現ReplaceAll全部替換的方法
JS 字串有replace() 方法。但這個方法只會對匹配到的第一個字串替換。 如下例:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
如果要全部替換的話,JS 沒有提供replaceAll這樣的方法。使用正則表可以達成Replace 的效果:
1 |
|
g 的意義是:執行全域性匹配(查詢所有匹配而非在找到第一個匹配後停止)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
以上寫法有個類同的寫法:
1 |
|
g 執行全域性匹配(查詢所有匹配而非在找到第一個匹配後停止)。
m 執行多行匹配。
除此之外,也可以新增 Stirng物件的原型方法:
1 2 3 |
|
這樣就可以像使用replace 方法一樣使用replaceAll了
1 |
|
總結一下, 三種方式
1. str.replace(/oldString/g,newString)
2. str.replace(new RegExp(oldString,"gm"),newString)
3. 增加String 物件原型方法 replaceAll
PS:關於正則,本站還提供了2款非常簡便實用的正則表示式工具供大家使用:
JavaScript正則表示式線上測試工具:
http://tools.jb51.net/regex/javascript
正則表示式線上生成工具:
http://tools.jb51.net/regex/create_reg