Javascript 替换字符串中的字符

Javascript 替换字符串中的字符,javascript,Javascript,为什么这不适合我 <script type="text/javascript"> var gene="ATTAHATHHATTCGTA"; var i=0; for (;i<gene.lenth;i++) { if(gene[i]=='H') gene[i]='G'; } </script> var gene=“attahattcgta”; var i=0; 对于(;i而言,该方法的使用更加简单: var gene="ATTAHATHHATTCG

为什么这不适合我

<script type="text/javascript">
var gene="ATTAHATHHATTCGTA";
var i=0;
for (;i<gene.lenth;i++)
{
   if(gene[i]=='H')
     gene[i]='G';
}
</script>

var gene=“attahattcgta”;
var i=0;
对于(;i而言,该方法的使用更加简单:

var gene="ATTAHATHHATTCGTA"; 
gene = gene.replace("H", "G", "g"); // The last "g" means "replace all occurrences"
就这么简单

但是,这并不适用于所有浏览器。要使其可移植,必须将第一个参数指定为正则表达式,如下所示:

var gene="ATTAHATHHATTCGTA"; 
gene = gene.replace(/H/g, "G"); // The /g means "replace all occurrences"

这两个函数的
.length
属性拼写错误为
.lenth
。但除此之外

第一个函数不起作用的原因是,并非所有浏览器都支持对字符串中的单个字符进行数组样式的索引访问,即使是那些这样做的浏览器,它们也只支持读取访问

第二个函数不起作用的原因是,当您将字符串传递给
.replace()
时,它将只替换第一个实例,而将其放入循环中则没有帮助

使用作为的第一个参数可以轻松实现相同的功能,其中使用正则表达式可以指定其他参数,例如全局替换(或者可以将其设置为不区分大小写的替换):

如果出于某种原因,您真的希望自己逐个字符地处理字符串,您可以使用轻松地将其转换为数组,然后在完成后使用将其转换回字符串:

var gene=“attahattcgta”,
我
geneArray=gene.split(“”);

for(i=0;i)有一个拼写错误:“for(;i@Mackintoast:请查看我刚刚保存的关于正则表达式的编辑。
var gene="ATTAHATHHATTCGTA"; 
gene = gene.replace(/H/g, "G"); // The /g means "replace all occurrences"
gene = gene.replace(/H/g, "G");
var gene="ATTAHATHHATTCGTA",
    i,
    geneArray = gene.split("");

for (i=0;i<geneArray.length;i++)
{
   if(geneArray[i]=='H')
     geneArray[i]='G';
}
gene = geneArray.join("");