我收到了一个JavaScript代码挑战,以创建一个函数,该函数将用 0、1、2、3、4(分别)替换字符串中 a、e、i、o、u 的所有实例。例如,“这个字符串怎么样?” 应该变成“H3w 0b34t th2s str2ng?”
这是我解决问题的方法:
const hackerSpeak = (str) => {
return str.replace(/[aA]/g, 0).replace(/[eE]/g, 1).replace(/[iI]/g, 2).replace(/[oO]/g, 3).replace(/[uU]/g, 4)
}
Run Code Online (Sandbox Code Playgroud)
我对 RegEx 相当陌生,并且发现自己想知道是否有一种更简单的方法可以避免链接。我可以将 RegEx 组合成一个表达式,分别用 01234 替换 aeiou 吗?
这个问题的答案让我研究了捕获组和反向引用,但这似乎是为了重新排序/交换 aeiou 字符,而不是用 01234 替换它们。(虽然我很高兴得到纠正。)