判断是否以元音字母结尾
题目描述:给定字符串 str,检查其是否以元音字母结尾
1、元音字母包括 a,e,i,o,u,以及对应的大写
2、包含返回 true,否则返回 false
示例1
输入:'gorilla'
输出:true
题解:
-
根据之前学的方法,用if即可,但是这个方法太简单了,没有容纳到JS的知识点,当然也可以用switch case 的方法:
function endsWithVowel(str) { var i=str.length-1; if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u'||str[i]=='A'||str[i]=='E'||str[i]=='I'||str[i]=='O'||str[i]=='U') return true; return false; }
运行时间1172ms 占用内存77828KB
-
获取字符串的最后一位字母—>将最后一位字母统一转换成小写—>在元音字母数组中查询是否包含最后一位字母。
使用toLowerCase()方法将大写转化为小写,使用string.includes(str)方法查找string中是否含有str
function endsWithVowel(str) { let word = str[str.length-1]; return ['a','e','i','o','u'].includes(word.toLowerCase()); }
运行时间1228ms 占用内存77860KB
-
获取字符串的最后一位字母—>在元音数组中查看是否包含最后一个字母
function endsWithVowel(str) { let word = str[str.length-1]; return ['A','E','I','O','U','a','e','i','o','u'].includes(word); }
运行时间1172ms 占用内存77884KB
-
利用正则表达式:
$表示匹配结尾,/gi表示忽略大小写,test方法表示比较,用于检测一个字符串是否匹配某个模式
function endsWithVowel(str) { var reg = /(a|e|i|o|u)$/i; return reg.test(str); }
-
利用逻辑表达式和indexOf()方法(比较字符是否在字符串里):
function endsWithVowel(str) { return str&&("aeiouAEIOU".indexOf(str[str.length-1]) > -1); }
运行时间2020ms 占用内存77872KB
注意:includes 和test 方法有类似作用但用法不同:
includes:
查找字符串是否包含 “某个部分”:
var str = "Hello world!"; var patt = "world"; var n = str.includes(patt);//判断str中是否有‘world’
test:
test() 方法用于检测一个字符串是否匹配某个模式.如果字符串中有匹配的值返回 true ,否则返回 false。
var str="Hello world!"; var patt=/world/g; return patt.test(str);//world(patt)是否在str中
此处的JS可以用于移动端浏览器和PC端浏览器的判断:
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test (navigator.userAgent) ) { document.write("移动") } else { document.write("PC") }