JavaScript正则表达式专题

判断是否包含数字

例如: 给定字符串 str,检查其是否包含数字,包含返回 true,否则返回 false
输入:‘abc123’
输出: true

两种方法:

  1. 正则表达式:
function containsNumber(str) {
    
    
    var reg = /\d/
    return reg.test(str)
}
  1. 遍历:
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)
}

猜你喜欢

转载自blog.csdn.net/yldd_ldd/article/details/113781325