我确信这应该可行,但我不能按照我的意愿去做它:
new_str = old_str.replace(3, "a");
// replace index 3 (4th character) with the letter "a"
所以,如果我有abcdef
,那么上面应该返回abcaef
,但我一定是弄错了。它正在改变角色,但不是预期的角色。
本机JS或jQuery解决方案都没问题,无论什么是最好的(我在该页面上使用jQuery)。
我已经尝试过搜索,但所有教程都谈论了Regex等,而不是索引替换。
答案 0 :(得分:2)
您似乎想要替换数组样式,因此将字符串转换为数组:
// Split string into an array
var str = "abcdef".split("");
// Replace char at index
str[3] = "a";
// Output new string
console.log( str.join("") );
答案 1 :(得分:1)
以下是其他三种方法 -
var old_str =“abcdef”,
//1.
new_str1= old_str.substring(0, 3)+'a'+old_str.substring(4),
//2.
new_str2= old_str.replace(/^(.{3}).(.*)$/, '$1a$2'),
//3.
new_str3= old_str.split('');
new_str3.splice(3, 1, 'a');
//返回值
new_str1+'\n'+new_str2+'\n'+ new_str3.join('');
abcaef
abcaef
abcaef