Javascript 直接修改字符串的元素

Javascript 直接修改字符串的元素,javascript,Javascript,我有一根绳子。就像, var str = "This is an example sentence, thanks."; 我想改变这个字符串的每五个元素 for(var i=5; i<=str.length; i=i+5) { str[i]='X'; // it doesn't work, I need something like that } for(var i=5;ivar str=“这是一个示例句子,谢谢。”; var newString=“”; 对于(var i=0;

我有一根绳子。就像,

var str = "This is an example sentence, thanks.";
我想改变这个字符串的每五个元素

for(var i=5; i<=str.length; i=i+5)
{
   str[i]='X';  // it doesn't work, I need something like that
}
for(var i=5;i
var str=“这是一个示例句子,谢谢。”;
var newString=“”;
对于(var i=0;i
var str=“这是一个示例句子,谢谢。”;
var newString=“”;

对于(var i=0;i使用RegEx

str = str.replace(/(....)./g, "$1X")

使用正则表达式

str = str.replace(/(....)./g, "$1X")

您可以使用
string.substring()

var a=“这是一个例句,谢谢。”;
var结果=”;

对于(var i=0;i

您可以使用
string.substring()

var a=“这是一个例句,谢谢。”;
var结果=”;

对于(var i=0;i

您可以使用映射,尽管正则表达式解决方案看起来更好

str = str.split('').map(function(chr, index){
  return (index % 5 === 4)? 'X' : chr;
}).join('');

您可以使用映射,尽管正则表达式解决方案看起来更好

str = str.split('').map(function(chr, index){
  return (index % 5 === 4)? 'X' : chr;
}).join('');

这种方法使用
Array.reduce
,它是JavaScript1.8的原生版本,但也可以使用


更新:更新以反映am not i am下面的评论。

此方法使用
数组。reduce
,它是JavaScript 1.8的本机,但可以使用



更新:更新以反映我不是下面的评论。

你试过和吗?你能解释一下吗。这里是相关讨论你试过和吗?你能解释一下吗。这里是相关讨论+1,但对于IE 8及更低版本,
str[i]
应该是
str.charAt(i)
+1但是对于IE 8和更低版本,
str[i]
应该是
str.charAt(i)
。您可能指的是
Array.prototype.reduce.call(“这是…)
@amnotiam不,我实际上是指我写的。你的方法可以在旧版本的JavaScript中使用,但在1.6及更高版本中可以使用。你问题中的链接链接到
Array.prototype.reduce
,而不是
Array.reduce
。请注意,你指的是非ES标准rd Mozilla扩展。现在最接近标准的似乎是。@amnotiam很好,我被MDN误导了。通常当某些东西不标准时,他们会指出它。你可能是指
Array.prototype.reduce.call(“这是…)
@amnotiam不,我实际上是指我写的。你的方法可以在旧版本的JavaScript中使用,但在1.6及更高版本中可以使用。你问题中的链接链接到
Array.prototype.reduce
,而不是
Array.reduce
。请注意,你指的是非ES标准rd Mozilla扩展。目前最接近标准的似乎是。@amnotiam好的一点,我被MDN误导了。通常当某些东西不标准时,他们会指出它。请注意ie8和更低版本不支持
map()
。ie不支持很多东西:(请注意ie8和更低版本不支持
map())
.ie不支持任何东西:(你可能想在小提琴中再看一眼结果。你应该做
a.substr(i,4)+'X'
a.substring(i,i+4)+'X'
。你可能想在小提琴中再看一看结果。你应该做
a.substr(i,4)+'X'
a.substring(i,i+4)+“X”
Array.prototype.reduce.call("This is an example sentence, thanks.", function(p,c,i,a) { return p + ( i % 5 == 4 ? "X" : c); });