试图做一个功能,将英文单词转换成猪拉丁文。我的问题是当我检查第一个字母是否是元音时。我使用正则表达式来检查:if (str[0] === /[aeiou]/i)
但它不起作用。我的正则表达式有什么问题,但我看看引用,它应该可以工作。我不知道发生了什么事。有人可以解释为什么我使用的正则表达式不起作用,什么是类似的工作解决方案?如果你运行下面的代码,它没有给出正确的结果,只是事先说。Javascript猪拉丁语正则表达式不工作
function translate(str) {
var tag = "";
if (str[0] === /[aeiou]/i) {
tag = "way";
return str + tag;
}
else {
var count = 0;
for (var i = 0; i< str.length; i++) {
if (str[i] !== /[aeiou]/i)
tag += str[i];
else
break;
count = i;
}
console.log(count);
return str.slice(count + 1) + tag + "ay";
}
}
因此,当我运行说translate(overjoyed)
它应该返回“过度喜欢”。如果我运行translate(glove)
它应该返回“oveglay”。
你需要看一下再正则表达式的例子 - 你的代码是完全正确 –
使用它们这不是你如何测试一个字符串反对正则表达式。试着在MDC上查找'String.Prototype.match()'。 – miken32
也不需要正则表达式:'if(“aeiou”.indexOf(str [0])!= - 1){' – mplungjan