在字符串中替换第N个 - JavaScript

时间:2013-03-06 04:06:15

标签: javascript jquery

我确信这应该可行,但我不能按照我的意愿去做它:

new_str = old_str.replace(3, "a");
// replace index 3 (4th character) with the letter "a"

所以,如果我有abcdef,那么上面应该返回abcaef,但我一定是弄错了。它正在改变角色,但不是预期的角色。

本机JS或jQuery解决方案都没问题,无论什么是最好的(我在该页面上使用jQuery)。

我已经尝试过搜索,但所有教程都谈论了Regex等,而不是索引替换。

2 个答案:

答案 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