我有一个文本框,我希望用户提供多个手机号码,每个号码应该只有10位数,并且应该以逗号分隔。除了逗号之外,不应该允许特殊字符,甚至空格。
答案 0 :(得分:5)
我假设您可以弄清楚如何从文本框中获取值。
这是一个正在进行数字验证的正则表达式:
/^(\d{10}(,\d{10})*)?$/
这将允许该字段为空白,但如果输入某些内容,则必须是由逗号分隔的一个或多个10位数字。
答案 1 :(得分:1)
不是为整个事物找到一个正则表达式,而是可以将其拆分并测试每个段的表达式,删除坏段并将事物重新组合在一起。这样理论上你可以匹配数百个电话号码:)
var numbers = 'aaa,456,789'.split(',').filter(function(item) {
return /^\d{10}$/.test(item)
});
if (numbers.length > 2) {
// too many numbers?
} else if (!numbers.length) {
// no numbers?
}
// this will give you back a comma separated list in a string
// numbers.join(',')
请注意,Array.filter()
可能不适用于 evil 所有浏览器,因此您必须为此找到suitable alternative。
答案 2 :(得分:0)
你可以这样做
/^\d{10}(,\d{10})*$/
\d{10}
匹配10位
(,\d{10})*
匹配,
和10位数0到多次
答案 3 :(得分:0)
与其他人类似,但无需重复\d{10}
部分
^(?:\d{10},?\b)+$
答案 4 :(得分:0)
您的电话号码的验证功能。如果该字段为空,则验证为true。
function validateNumbers( text ) {
var numbers = text.split(",");
for( var i = 0, len = numbers.length; i < len; i++ ) {
if( !/^\d{10}$/.test( numbers[i] ) ) {
return false;
}
}
return true;
}
答案 5 :(得分:0)
使用以下正则表达式之一:
/^(\d{10}(,(?=.))?)+$/
/^(\d{10}(,(?=.)|$))+/
/^(\d{10}(,(?=.)|))+$/
/^\d{10}(,\d{10})*$/