我有一个字符串。它就像;
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
}
所以我希望str成为“ThisXis aX exaXple XenteXce,XhankX。”
有没有办法做到这一点?
答案 0 :(得分:3)
答案 1 :(得分:2)
var str = "This is an example sentence, thanks.";
var newString = "";
for(var i=0; i<str.length; i++)
{
if ((i % 5) == 4) {
newString += "X";
} else {
newString += str.charAt(i);
}
}
这是一个正在运行的例子。 http://jsfiddle.net/WufuK/1
答案 2 :(得分:2)
您可以使用string.substring()
var a = "This is an example sentence, thanks.";
var result ="";
for(var i=0;i <a.length-1; i+=5){
result +=a.substr(i, 4)+'X';
}
alert(result)
jsFiddle:http://jsfiddle.net/mVb4u/5
答案 3 :(得分:2)
你可以使用地图,虽然正则表达式解决方案看起来更好。
str = str.split('').map(function(chr, index){
return (index % 5 === 4)? 'X' : chr;
}).join('');
答案 4 :(得分:2)
此方法使用Array.reduce
,这是JavaScript 1.8的原生代码,但可以是backported。
Array.prototype.reduce.call("This is an example sentence, thanks.", function(p,c,i,a) { return p + ( i % 5 == 4 ? "X" : c); });
更新:已更新,以反映我不是的评论。