ly2011 / blog

前端学习笔记
https://ly2011.github.io/blog
122 stars 12 forks source link

正则表达式校验手机号码居然出错? #182

Open ly2011 opened 5 years ago

ly2011 commented 5 years ago

问题:今日遇到一个神奇的问题,用户那边反馈在input框粘贴手机号码,校验失败,原因是粘贴时带有特殊编码 解决方案:过滤掉不是整型的字符

function getTelPhone (phone) {
    if (typeof phone !== 'string') return ''
    var phoneReg = /[0-9]/
    var phoneNum = ''
    for (i = 0; i < phone.length; i++) {
        if (phoneReg.test(phone.charAt(i))) {
            phoneNum += phone.charAt(i)
        }
    }
    return phoneNum
}

var phone = '‭13712312312‬' // 此处的phone是有特殊编码的,长度为13
console.log(getTelPhone(phone), getTelPhone(phone).length)