我应该编写一个带有字符的函数(即长度为1的字符串),如果是元音则返回true,否则返回false。我想出了两个功能,但不知道哪一个功能更好,哪种方式更适合我。使用RegEx的方式更简单,但我不确定是否应该尽量避免使用RegEx?如何检查JavaScript中的元音?
我没有正则表达式的尝试:
function isVowel(char)
{
if (char.length == 1)
{
var vowels = new Array('a','e','i','o','u');
var isVowel = false;
for(e in vowels)
{
if(vowels[e] == char)
{
isVowel = true;
}
}
return isVowel;
}
}
用正则表达式:
function isVowelRegEx(char)
{
if (char.length == 1)
{
return /[aeiou]/.test(char);
}
}
只是出于好奇 - 如果字符串长度不是1,你的函数应该返回什么? – 2011-03-30 14:57:42
[基准](http://jsperf.com/regex-vs-for-loop) – Raynos 2011-03-30 15:00:21
我不确定上下文是什么,但是在处理不同的语言时会遇到问题。你会如何以Zoë这个名字来对待字母“ë”?即使它自己存在,它仍然是一个元音。 你能提供更多信息吗? – T9b 2011-03-30 15:02:24