如何在javascript中查找字符串的第一个字母是否为元音
因此,我正在进行一个项目,正如标题所述,我试图找出javascript中字符串的第一个字母是否是元音。到目前为止,我有这样的代码如何在javascript中查找字符串的第一个字母是否为元音,javascript,Javascript,因此,我正在进行一个项目,正如标题所述,我试图找出javascript中字符串的第一个字母是否是元音。到目前为止,我有这样的代码 function startsWithVowel(word){ var vowels = ("aeiouAEIOU"); return word.startswith(vowels); } startsWith仅接受单个字符。对于此类功能,请改用正则表达式。从单词中提取第一个字符(word[0]),并查看其字符是否包含在不区分大小写的字符集中,[a
function startsWithVowel(word){
var vowels = ("aeiouAEIOU");
return word.startswith(vowels);
}
startsWith
仅接受单个字符。对于此类功能,请改用正则表达式。从单词中提取第一个字符(word[0]
),并查看其字符是否包含在不区分大小写的字符集中,[aeiou]
:
function startsWithVowel(word){
return /[aeiou]/i.test(word[0]);
}
函数以元音(单词)开始{
return/[aeiou]/i.test(word[0]);
}
console.log(
以元音('foo')开头,
以元音('oo')开头,
以元音('bar')开头,
以元音('BAR')开头,
以元音('AR'开头)
);代码>startsWith
仅接受单个字符。对于此类功能,请改用正则表达式。从单词中提取第一个字符(word[0]
),并查看其字符是否包含在不区分大小写的字符集中,[aeiou]
:
function startsWithVowel(word){
return /[aeiou]/i.test(word[0]);
}
函数以元音(单词)开始{
return/[aeiou]/i.test(word[0]);
}
console.log(
以元音('foo')开头,
以元音('oo')开头,
以元音('bar')开头,
以元音('BAR')开头,
以元音('AR'开头)
);代码>您已经非常接近了,只需使用[0]
将单词切分,然后进行检查:
函数以元音(单词)开始{
变量元音=(“aeiouAEIOU”);
返回元音。indexOf(单词[0])!=-1;
}
console.log(“apple.concat”(起始于元音(“apple”)?“以元音开头”:“不以元音开头”);
console.log(“banana”.concat(以元音开头(“banana”)?“以元音开头”:“不以元音开头”)代码>您已经非常接近了,只需使用[0]
将单词切分,然后进行检查:
函数以元音(单词)开始{
变量元音=(“aeiouAEIOU”);
返回元音。indexOf(单词[0])!=-1;
}
console.log(“apple.concat”(起始于元音(“apple”)?“以元音开头”:“不以元音开头”);
console.log(“banana”.concat(以元音开头(“banana”)?“以元音开头”:“不以元音开头”)代码>ES6 oneliner:
const startsWithVowel = word => /[aeiou]/i.test(word[0]);
ES6 oneliner:
const startsWithVowel = word => /[aeiou]/i.test(word[0]);
如果您不关心重音符号,则此选项有效:
const是_元音=chr=>(/[aeiou]/i)。测试(chr);
is_元音('e');
//=>正确
is_元音('x');
//=>错误
但它会因法语中常见的重音符号而失败,例如:
是_元音('e');//=>假的
可以使用“拆分”字符:基础字符后跟重音符号
“é”。长度;
//=> 1
“é”。标准化('NFD')。长度;
//=> 2
“é”。标准化('NFD')。拆分(“”);
//=>[“e”,“́”](字母e后跟重音)
现在,您可以去除重音符号:
const is_元音=chr=>(/[aeiou]/i).test(chr.normalize('NFD')).split(''[0]);
是_元音('e');
//=>正确
要归功于如果您不在乎重音符号,则此操作有效:
const是_元音=chr=>(/[aeiou]/i)。测试(chr);
is_元音('e');
//=>正确
is_元音('x');
//=>错误
但它会因法语中常见的重音符号而失败,例如:
是_元音('e');//=>假的
可以使用“拆分”字符:基础字符后跟重音符号
“é”。长度;
//=> 1
“é”。标准化('NFD')。长度;
//=> 2
“é”。标准化('NFD')。拆分(“”);
//=>[“e”,“́”](字母e后跟重音)
现在,您可以去除重音符号:
const is_元音=chr=>(/[aeiou]/i).test(chr.normalize('NFD')).split(''[0]);
是_元音('e');
//=>正确
要归功于@AndrewL64不同的语言,但逻辑仍然适用。@A.J.Uppal我撤回了接近投票。谢谢你的提醒。@AndrewL64不同的语言,但逻辑仍然适用。@A.J.Uppal我已经撤回了接近票数的投票。谢谢你的提醒。虽然你的方法很好,但是如果(只是为了测试目的)提供的索引超过字符串的长度。这对他们来说是真的。indexOf(单词[0])非常适合于此目的。虽然您的方法很不错,但如果(仅出于测试目的)提供的索引大于字符串的长度,则可以使用。这对他们来说是真的。indexOf(单词[0])非常适合这个用途。