我对 JavaScript 有点陌生,我正在尝试使用与字符串匹配的正则表达式替换数组元素,这是我尝试过的代码

<button onclick="myFunction()">ClickHere</button> 
<p id="demo"></p> 
<script> 
function myFunction() { 
    var abc = ["deno", "eno","pqr","lenovo"]; 
    var i,text; 
    for(i = 0; i < abc.length; i++) { 
        text += abc[i].replace(/no/i, "po"); 
        document.getElementById("demo").innerHTML = text; 
    } 
} 
</script> 

我想用“po”替换数组元素在数组元素字符串中遇到“no”的地方。

这就是我所期望的:

abc["depo","epo","pqr","lepovo"] 

请您参考如下方法:

您可以对每个元素执行此操作:

for(var i=0; i < abc.length; i++) { 
    abc[i] = abc[i].replace('no', 'po'); 
} 

或使用一行

abc = abc.map(function(x){return x.replace('no', 'po');}); 

或使用一行“箭头函数”:

abc = abc.map(x => x.replace('no', 'po')); 

更改数组后,可以使用以下方法将其转换为字符串:

var text = 'abc[';  
 
for ( var i = 0 ; i < abc.length ; i++ ) { 
    text+='\"'+abc[i]+'\"'; 
    if ( i != abc.length - 1) { 
        text+=','; 
    } 
} 
text += ']'; 

测试:

function myFunction() { 
    var abc = ["deno", "eno","pqr","lenovo"]; 
    abc = abc.map(x => x.replace('no', 'po')); // see other 2 alternatives above 
 
    var text = 'abc[';  
 
    for ( var i = 0 ; i < abc.length ; i++ ) { 
        text+='\"'+abc[i]+'\"'; 
        if ( i != abc.length - 1) { 
            text+=','; 
        } 
    } 
    text += ']'; 
    document.getElementById("demo").innerHTML = text; 
}
<button onclick="myFunction()">ClickHere</button> 
<p id="demo"></p>


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!