当前我们有一批电话号码, 需要筛选出其中所有的靓号,规定满足如下特征之一的即为靓号:
1. 号码中有连续4位以上连续相同数字
2. 号码中有连续4位以上连续递增 / 递减数字
1. 判断号码中有连续4位以上连续相同数字
/**
* @param {电话号码} phoneNum
*/
function isSpecial (phoneNum) {
// let re = new RegExp('(\\d)\\1{' + (len - 1) + ',}', 'g');
let re = /(\d)\1{3,}/g;
phoneNum += ''
return re.test(phoneNum)
}
console.log(isSpecial (phoneNum))
或者如下:
/**
* @param {电话号码} phoneNum
* @param {电话号码中有len位连续相同字符} len
*/
function isSpecial (phoneNum, len) {
let re = new RegExp('(\\d)\\1{' + (len - 1) + ',}', 'g');
// 当len为4时, 等价于 let re = /(\d)\1{3,}/g
phoneNum += ''
return re.test(phoneNum)
}
console.log( isSpecial(phoneNum, 4) )
2. 号码中有连续4位以上连续递增 / 递减的数字
/**
* @param {电话号码} phoneNum
*/
function upDownSpecial (phoneNum) {
phoneNum += ''
let re = /\d/g;
let re1 = /(\(.*\))\1{3,}/g;
// 判断是否递增
let increment = phoneNum.replace(re, function (x1, idx) {
return `(${x1 - idx})`
})
let isIncrement = re1.test(increment)
// 判断是否递减
let decrement= phoneNum.replace(re, function (x1, idx) {
return `(${x1 + idx})`
})
let isDecrement = re1.test(decrement)
return isIncrement || isDecrement
}
版权声明:本文为studentenglish原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。