2

我确定这应该可以工作,但我无法让它做我想做的事情:

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

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

无论是原生 JS 还是 jQuery 解决方案都可以,无论是最好的(我在那个页面上使用 jQuery)。

我试过搜索,但所有教程都在谈论正则表达式等,而不是索引替换的事情。

4

2 回答 2

2

您似乎想要数组样式的替换,因此将字符串转换为数组:

// Split string into an array
var str = "abcdef".split("");

// Replace char at index
str[3] = "a";

// Output new string
console.log( str.join("") );
于 2013-03-06T04:11:42.393 回答
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
于 2013-03-06T04:24:08.333 回答