我有此代码段,很明显,可以避免在if条件下重复这两个正则表达式,因为您可以看到它们仅相差一个数字。

'phoneNumberRegexp': function (phoneCode, homeNumber) {
    if (phoneCode === 372) {
        return /[\s]*^\s*(\d[\s\-\u00b7]*){6,13}$/.test(homeNumber);
    } else {
        return /[\s]*^\s*(\d[\s\-\u00b7]*){8,13}$/.test(homeNumber);
    }
}


任何想法如何做到这一点?

先感谢您

最佳答案

如果您确实需要,可以创建一个动态正则表达式并使用它

'phoneNumberRegexp': function (phoneCode, homeNumber) {
    return new RegExp('[\\s]*^\\s*(\\d[\\s\\-\\u00b7]*){' + (phoneCode === 372 ? 6 : 8) + ',13}$').test(homeNumber);
}

10-07 12:29