在 javascript str.replace(from, to, indexfrom) 中替换特定索引后的字符串
Posted
技术标签:
【中文标题】在 javascript str.replace(from, to, indexfrom) 中替换特定索引后的字符串【英文标题】:replace a string after specific index in javascript str.replace(from, to, indexfrom) 【发布时间】:2018-02-11 01:07:06 【问题描述】:我喜欢在特定索引之后替换字符串。
例如:
var str = "abcedfabcdef"
str.replace ("a","z",2)
console.log(str)
abcedfzbcdef
有没有办法在 javascript 或 nodeJS 中做到这一点?
【问题讨论】:
【参考方案1】:正则表达式替代,但替换特定索引后的所有匹配项:
console.log( 'abcabcabc'.replace(/a/g, (s, i) => i > 2 ? 'z' : s) )
【讨论】:
【参考方案2】:没有直接的方法使用内置的replace
函数,但你总是可以为此创建一个新函数:
String.prototype.betterReplace = function(search, replace, from)
if (this.length > from)
return this.slice(0, from) + this.slice(from).replace(search, replace);
return this;
var str = "abcedfabcdef"
console.log(str.betterReplace("a","z","2"))
【讨论】:
@user2969187 它仅替换索引后的第一个实例。要替换所有匹配项,例如str.betterReplace(/a/g,"z",2)
只是为了名字起见,宁愿称之为replaceAfter :)
而要全部替换,我们也可以在函数内部使用replaceAll(可选地传递一个标志或命名函数)以上是关于在 javascript str.replace(from, to, indexfrom) 中替换特定索引后的字符串的主要内容,如果未能解决你的问题,请参考以下文章