我在这样的输入变量中有这个字符串:
var input = "javascript";
我想通过将 a 替换为 4 并将 i 替换为 1 来将此字符串更改为“j4v4sr1pt”。
我试图做这样的事情但对我没有用,我是 JavaScript 的新手。有人可以告诉我我在这里做错了什么吗?感谢提前投反对票:D
<script>
var input = "javascript";
var output= "";
for ( var i=0;i<input.length ; i++)
{ if ( input[i] == "a")
{output[i] = "4"; }
else if ( input[i] == "i")
{ output[i] ="1"; }
else
output[i]=input[i];
}// end forloop
</script>
在 JavaScript 中,字符串是不可变的,这意味着它们不能就地改变。即使您可以读取字符串的每个字符,也无法对其进行写入。
您可以使用正则表达式替换来解决问题:
output = input.replace(/a/g, '4').replace(/i/g, '1');
或者你可以通过将 output
从字符串更改为数组,然后将其连接起来使其成为字符串来解决它:
var input = "javascript";
var output = []; //change this
for (var i = 0; i < input.length; i++) {
if (input[i] == "a") {
output[i] = "4";
} else if (input[i] == "i") {
output[i] = "1";
} else
output[i] = input[i];
} // end forloop
output= output.join(''); //change array to string
console.log(output);