我有此代码段,很明显,可以避免在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);
}