判断是否包含数字
例如: 给定字符串 str,检查其是否包含数字,包含返回 true,否则返回 false
输入:‘abc123’
输出: true
两种方法:
- 正则表达式:
function containsNumber(str) {
var reg = /\d/
return reg.test(str)
}
- 遍历:
function containsNumber(str) {
for(let i = 0; i < str.length; i++) {
if (str.indexOf(i) !== -1) {
return true
}
}
return false
}
检查重复字符串
例如:给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false
输入:‘rattler’
输出:true
方法一:采用正则表达式分组形式的反向引用。这个理解起来可能一头雾水,我们可以举个例子:
var reg = /(\w{3}) is \1/
reg.test('kid is kid') // true
reg.test('dik is dik') // true
reg.test('kid is dik') // false
reg.test('dik is kid') // false
该例子可以判断要检测的字符串是否中间为is,左右两边相同长度为3的字符串,如果满足,返回true,否则,返回false.所以很显然,如果要检测重复连续的字母,我们需要将is去掉,\w{3}改为[a-zA-Z]即可。
function containsRepeatingLetter(str) {
var reg = /([a-zA-Z])\1/
return reg.test(str)
}
方法二:常规for循环遍历方式:
function containsRepeatingLetter(str) {
var reg = /[a-zA-Z]/
for(let i = 0; i < str.length; i++) {
if (str[i] === str[i + 1] && reg.test(str[i])) {
return true
}
}
return false
}
判断是否以元音字母结尾
例如:给定字符串 str,检查其是否以元音字母结尾
1、元音字母包括 a,e,i,o,u,以及对应的大写
2、包含返回 true,否则返回 false
输入:‘gorilla’
输出:true
function endsWithVowel(str) {
// /i 为不区分大小写
var reg = /(a|e|i|o|u)$/i
return reg.test(str)
}