如何用特定索引的引用替换字符串的所有字符。
我有一个像
这样的字符串var str = "A1 B1C2"
现在我想检查第一个索引中的字符是什么
var charAtFirst = str.charAt(1);
所以我得到了 1。
现在我想替换所有值为 1 的字符。如何做到这一点。感谢您的帮助。
最佳答案
使用字符串生成RegExp
,在创建时需要转义字符串中的特殊含义字符。生成 RegExp
后使用 String#replace
方法。
var str = "A1 B1C2";
var charAtFirst = str.charAt(1);
console.log(
str.replace(new RegExp(charAtFirst.replace(/[|\\{}()[\]^$+*?.]/, '\\$&'), 'g'), '')
);
更新1:如果您想删除大于特定数字的数字,则获取所有数字并通过与该数字进行比较来替换。您可以使用String#replace
带有回调函数的方法。
var str = "A1 B1C2";
var charAtFirst = +str.charAt(1);
console.log(
str.replace(/\d+/g, function(m) {
return +m > charAtFirst ? '' : m;
})
);
更新2: 如果你想增加字符,那么就这样做。
var str = "A1 B1C2";
var charAtFirst = str.charAt(1);
console.log(
str.replace(new RegExp(charAtFirst.replace(/[|\\{}()[\]^$+*?.]/, '\\$&'), 'g'), (+charAtFirst) + 1)
);
关于javascript - 如何用特定索引的引用替换字符串的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40479883/