关于jquery:在字符串中替换第N个 – JavaScript

replace Nth occurence in string - JavaScript

本问题已经有最佳答案,请猛点这里访问。

我确信这是可行的,但我不能让它做我想做的:

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

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

无论是本地JS还是jquery解决方案都是好的,无论哪一个最好(我在那个页面上使用jquery)。

我尝试过搜索,但是所有的教程都在谈论regex等,而不是索引替换。


您似乎希望替换数组样式,因此请将字符串转换为数组:

1
2
3
4
5
6
7
8
// Split string into an array
var str ="abcdef".split("");

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

// Output new string
console.log( str.join("") );

还有三种方法-

var old_str="abcdef",

1
2
3
4
5
6
7
8
9
//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');

//返回值

1
2
3
4
5
6
7
new_str1+'
'
+new_str2+'
'
+ new_str3.join('');

abcaef
abcaef
abcaef