簡體   English   中英

JavaScript 如何用 2 個新字符替換字符串中的字符

[英]JavaScript How can I replace a char from a String with 2 new chars

例如,我有字符串“Hello my name is ...”,現在我想將字符串更改為“Hellel my name is ...”。 我該怎么做? 我已經寫了一個代碼,但只要我想用 2 個新字符更改/替換 1 個字符,整個“網站”就會永遠加載。

這是我的代碼:

function f(str) {
        let e = document.getElementById("changeValue");
        let replaceStr = e.options[e.selectedIndex].text;
        const vokale = ['a', 'e',  'i', 'o', 'u'];
        for (let i = 0; i < str.length;i++) {
            if (vokale.includes(str.toLowerCase()[i])){
                if(vokale.includes(str.toLowerCase()[i+1])){
                    str = str.substr(0, i + 1) + '' + str.substr(i + 2, str.length);
                }
                if (replaceStr.length == 2) {
                    str = str.substr(0, i) + replaceStr.charAt(0) + str.substr(i + 1, str.length);
                    str = str.substr(0, i + 1) + replaceStr.charAt(1) + str.substr(i + 2, str.length);
                } else {
                    str = str.substr(0, i) + replaceStr + str.substr(i + 1, str.length);
                }
            }
        }
        changeText(str);
    }

str ... 是我想修改的字符串 - e ... 只是一個字符串/字符,我想替換一些東西,就像在這里我想用 e 替換所有的人聲。

提前感謝您的幫助!

可以使用帶有替換功能的正則表達式:

let regex = '(a|e|i|o|u)'

let re = new RegExp(regex, 'g');

str = str.replace(re, replaceStr);
console.log(str)

在這種情況下不會發生無限循環,您可以用 2-3 個或更多字符替換人聲

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM