使用123和321之类的JavaScript将字符串替换为abc和cba

时间:2018-11-29 12:26:14

标签: javascript

在我的页面上:123和321,单击“尝试”时,它显示为:abc和cba。我是怎么做到的?我的代码:

    function myFunction() {
        var str = document.getElementById("demo").innerHTML; 
        var res = str.replace(/1/g, "a");
        document.getElementById("demo").innerHTML = res;
    }
    <!DOCTYPE html>
    <html>
    <body>

    <p id="demo">123 and 321</p>

    <button onclick="myFunction()">Try it</button>

    </body>
    </html>

2 个答案:

答案 0 :(得分:0)

这是解决这个问题的简单方法。

尚不清楚您是否真正在追求更通用的东西,但这可以通过添加更多(简单的)替换函数来解决问题中所述的特定问题。

function myFunction() {
        var str = document.getElementById("demo").innerHTML; 
        var res = str.replace(/1/g, "a");
        res = res.replace(/2/g, "b");
        res = res.replace(/3/g, "c");
        document.getElementById("demo").innerHTML = res;
    }
<!DOCTYPE html>
    <html>
    <body>

    <p id="demo">123 and 321</p>

    <button onclick="myFunction()">Try it</button>

    </body>
    </html>

答案 1 :(得分:0)

您可以使用String.fromCharCodeString.charCodeAt

遍历字符,如果数字中的字符来自1-9,则将其更新为相应的alphabet,否则按原样添加字符。

function myFunction() {
    var str = document.getElementById("demo").innerHTML;
    var res = "";
    for (var i = 0; i < str.length; i++) {
      var charCode = str.charCodeAt(i);
      if(charCode >= 49 && charCode <= 57) res += String.fromCharCode(charCode + 48)
      else res += str[i];
    }
    document.getElementById("demo").innerHTML = res;
}
<p id="demo">123 and 321</p>

<button onclick="myFunction()">Try it</button>