gpt4 book ai didi

javascript - 防止 .replace 替换已替换的字母

转载 作者:行者123 更新时间:2023-12-02 20:24:10 27 4
gpt4 key购买 nike

作为一种实践,我正在尝试创建一个假“翻译器”,它将使用 .replace 将英语转换为字母表的困惑版本,但是我遇到了一个问题,.replace 操作替换了已被替换的字母。之前被替换。

有没有办法防止代码重新替换已经被替换的字母?

我的 HTML:

<button onclick="Function()">click</button>

<p id="let">a b c d e f g h i j k l m n o p q r s t u v w x y z</p>

<p id="demor"></p>

我的 JavaScript:

function Function() {
var str = document.getElementById("let").innerHTML;
var txt = str.replace(/a/g,"x").replace(/b/g,"b").replace(/c/g,"c").replace(/d/g,"d").replace(/e/g,"a").replace(/f/g,"k").replace(/g/g,"s").replace(/h/g,"r").replace(/i/g,"e").replace(/j/g,"i").replace(/k/g,"d").replace(/l/g,"r").replace(/m/g,"z").replace(/n/g,"m").replace(/o/g,"s").replace(/p/g,"v").replace(/q/g,"p").replace(/r/g,"r").replace(/s/g,"k").replace(/t/g,"s").replace(/u/g,"i").replace(/v/g,"q").replace(/w/g,"v").replace(/x/g,"x").replace(/y/g,"e").replace(/z/g,"b");
document.getElementById("demor").innerHTML = txt;
}

任何帮助将不胜感激!

最佳答案

您的解决方案将在每次替换时扫描整个字符串一次。最好逐个字符地进行翻译,依次对每个字符进行翻译。

这是一个快速而肮脏的版本,缩减为仅覆盖小写字母 - 您可以对其进行整理并使其覆盖您喜欢的任何字符范围:

var input = "helloworld";
var xlate = "bcdefghijklmnopqrstuvwxyza";
var asciiA = 'a'.charCodeAt();

var out = "";
for(i=0;i<input.length;i++) {
out = out + xlate[input[i].charCodeAt() - asciiA];
}

alert(out);

关于javascript - 防止 .replace 替换已替换的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39794724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com