javascript - 如何用数字替换字符串中出现的字母

标签 javascript reactjs

我有一个输入字段,我可以在其中输入文本,我想用数字替换出现的元音。

例如 - (A,E,I,O,U - 1,2,3,4,5) 并向所有其他辅音添加“a”。

例如 - 输入字段接受“Victor 作为输入,页面上打印的内容是”Va3cata4ra”。

到目前为止,我已经能够使用模板字面量并将变量传递给 setState 来让辅音在其末尾显示“a” .但是,如上所述,我在让元音显示其数值时遇到了问题。我试过 Switchif else,出于某种原因,都没有用

export default class App extends Component {

state = {
    mytext: ''
}

onChangeHandler = (event) => {
        const newText = event.target.value;
        const splitText = newText.split('');
        let tempArr = []

        for (let onye in splitText) {
            else if (onye === 'e') {
                onye.replace(parseInt('2'))
            } else if (onye === 'i') {
                onye.replace(parseInt('3'))
            } else if (onye === 'o') {
                onye.replace(parseInt('4'))
            } else if (onye === 'u') {
                onye.replace(parseInt('5'))
            } else {
                return onye
            }

            //This got the consonants to display a after each one

            const raCon = `${splitText[onye]}a`
            tempArr.push(raCon)
        }

        this.setState({
            mytext: tempArr
        })

预期结果将在每个辅音和对应于 (A,E,I,O,U)- (1,2,3, 4,5)

最佳答案

您可以采用替换函数并用字母替换 and 和具有替换值的对象。

function replace(string) {
    return string.replace(/[aeiou]/gi, c => ({ a:1, e: 2, i: 3, o: 4, u: 5 }[c.toLowerCase()]));
}

console.log(replace('banana'));

关于javascript - 如何用数字替换字符串中出现的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56537370/

相关文章:

html - Bootstrap 缩小的 css 只有在我将它导入 index.js 时才会加载

javascript - React 16.3 中从 Prop 更新 Canvas 的正确生命周期方法是什么?

javascript - 在 Axios 创建函数中添加附加 header

javascript - $.extend() 不合并选项

Php Javascript 将 document.write 的内容写入变量

javascript - 使用 jQuery 将字符串 append 到 url

javascript - React js 在页面加载时触发提交函数

javascript - 如何有条件地解构对象?

javascript - $ ('#id' ) 返回 [对象对象]

javascript - JQuery 延迟加载。如何确保 jQuery 已加载?