如何在JavaScript中查找字符串的第一个字母是否是元音

时间:2019-12-29 22:31:24

标签: javascript

因此,我正在研究一个项目,正如标题所述,我试图查找javascript中字符串的第一个字母是否是元音。到目前为止,我的代码看起来像这样。

function startsWithVowel(word){
    var vowels = ("aeiouAEIOU"); 
    return word.startswith(vowels);
}

4 个答案:

答案 0 :(得分:2)

您已经很接近了,只需使用[0]切出单词并进行检查:

function startsWithVowel(word){
   var vowels = ("aeiouAEIOU"); 
   return vowels.indexOf(word[0]) !== -1;
}

console.log("apple ".concat(startsWithVowel("apple") ? "starts with a vowel" : "does not start with a vowel"));
console.log("banana ".concat(startsWithVowel("banana") ? "starts with a vowel" : "does not start with a vowel"));

答案 1 :(得分:1)

startsWith仅接受一个字符。对于这种功能,请改用正则表达式。从单词(word[0]中获取第一个字符,然后查看其字符是否包含在不区分大小写的字符集中[aeiou]中:

function startsWithVowel(word){
    return /[aeiou]/i.test(word[0]);
}

function startsWithVowel(word){
    return /[aeiou]/i.test(word[0]);
}

console.log(
  startsWithVowel('foo'),
  startsWithVowel('oo'),
  startsWithVowel('bar'),
  startsWithVowel('BAR'),
  startsWithVowel('AR')
);

答案 2 :(得分:1)

ES6 oneliner:

const startsWithVowel = word => /[aeiou]/i.test(word[0]);

答案 3 :(得分:1)

如果您不关心重音符号,则可以使用此功能:

const is_vowel = chr => (/[aeiou]/i).test(chr);

is_vowel('e');
//=> true

is_vowel('x');
//=> false

但是它将失败,并带有法语中常见的重音符号,例如:

is_vowel('é'); //=> false

您可以使用String#normalize“分割”一个字符:基本字符,后跟重音符号。

'é'.length;
//=> 1
'é'.normalize('NFD').length;
//=> 2
'é'.normalize('NFD').split('');
//=> ["e", "́"] (the letter e followed by an accent)

现在您可以摆脱重音符号了:

const is_vowel = chr => (/[aeiou]/i).test(chr.normalize('NFD').split('')[0]);

is_vowel('é');
//=> true

贷记this fantastic answerthis question