replace()
-
作用:在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;
-
语法
-
str.replace(value,replaceValue)
- value若是字符串 或 正则表达式(不带g), replace方法仅替换第一个匹配子串(
被替换字符
); - value若是正则表达式(带g), replace() 方法将替换所有匹配的子串(
替换字符
) 不改变
原有字符串!
- value若是字符串 或 正则表达式(不带g), replace方法仅替换第一个匹配子串(
-
-
示例1 -> replace方法不会改变原字符串
let str = 'abcdefghabcdefgh' const restr = str.replace('a', '1') console.log(str) // 不改变原字符 -> 'abcdefghabcdefgh'
-
示例2 -> 若是被替换字符为一个字符串 则 仅替换第一个匹配子串
let str = 'abcdefghabcdefgh' const restr = str.replace('a', '1') console.log(str) // 'abcdefghabcdefgh' console.log(restr) // '1bcdefghabcdefgh'
-
示例3 -> 若是被替换字符为一个正则表达式且带g(
g表示全局匹配
) 则 替换全部匹配子串let str = 'abcdefghabcdefgh' const restr = str.replace(/a/g, '1') console.log(str) // 'abcdefghabcdefgh' console.log(restr) // '1bcdefgh1bcdefgh'
-
示例4 -> 若是被替换字符为一个正则表达式不带g,与字符串相同仅替换第一个匹配子串
let str = 'abcdefghabcdefgh' const restr = str.replace(/a/, '1') console.log(str) // 'abcdefghabcdefgh' console.log(restr) // '1bcdefghabcdefgh'
repaceAll()
-
repaceAll是es6新增的遍历字符串的方法
-
作用:在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;
-
语法
-
str.replace(value,replaceValue)
-
value若是字符串, 会被转化为正则表达式(带g)
-
value若是正则表达式,则必须带g,不然会报错;
-
-
示例1 ->value为字符串
let str = 'abcdefghabcdefgh' const restr = str.replaceAll('a', '1') // 'a'会被转化为/a/g console.log(restr) // '1bcdefgh1bcdefgh'
-
示例2 -> value为正则表达式
let str = 'abcdefghabcdefgh' const restr = str.replaceAll(/a/, '1') //error tring.prototype.replaceAll called with a non-global RegExp argument
let str = 'abcdefghabcdefgh' const restr = str.replaceAll(/a/g, '1') console.log(restr) // '1bcdefghabcdefgh'