Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中查找字符串的第一个字母是否为元音_Javascript - Fatal编程技术网

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

如何在javascript中查找字符串的第一个字母是否为元音,javascript,Javascript,因此,我正在进行一个项目,正如标题所述,我试图找出javascript中字符串的第一个字母是否是元音。到目前为止,我有这样的代码 function startsWithVowel(word){ var vowels = ("aeiouAEIOU"); return word.startswith(vowels); } startsWith仅接受单个字符。对于此类功能,请改用正则表达式。从单词中提取第一个字符(word[0]),并查看其字符是否包含在不区分大小写的字符集中,[a

因此,我正在进行一个项目,正如标题所述,我试图找出javascript中字符串的第一个字母是否是元音。到目前为止,我有这样的代码

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])非常适合这个用途。