JS中字符串的替换方法:
let str = 'abcabcabc'
str = str.replace('a', 'd')
console.log(str)
得到结果为 ‘dbcabcabc’,只将第一个a字母替换为了d。
如果需要全局替换,使用正则表达式/g。
let str = 'abcabcabc'
str = str.replace(/a/g, 'd')
console.log(str)
结果为 ‘dbcdbcdbc’,将字符串中所有的a替换成了d。
如果被替换的字符串是一个变量该如何使用正则表达式呢?
let str = 'abcabcabc'
const s = 'ab'
str = str.replace(/s/g, 'd')
console.log(str, s)
想把字符串中所有的 ‘ab’ 替换为 ‘d’ ,但这种方法不可行
结果为 ‘abcabcabc’,并没有生效,因为正则表达式不会解析变量,会把s当做一个字符串。
若要使用变量,则需要创建一个正则表达式对象new RegExp()
let str = 'abcabcabc'
const s = new RegExp('ab', 'g')
str = str.replace(s, 'd')
console.log(str)
结果为 ‘dcdcdc’。
其中RegExp()第一个参数是一个字符串,指定了正则表达式的模式或其他正则表达式,第二个参数为匹配规则,‘g’表示全局匹配。