我有一个文本框,我希望用户在其中提供多个手机号码,每个号码应该只有 10 位数字,并且应该用逗号分隔。除了逗号之外,任何特殊字符都不应被允许甚至空格。
问问题
2885 次
6 回答
5
我假设您可以弄清楚如何从文本框中获取值。
这是一个将进行数字验证的正则表达式:
/^(\d{10}(,\d{10})*)?$/
这将允许该字段为空白,但如果输入内容,则必须是一个或多个用逗号分隔的 10 位数字。
于 2012-11-27T08:44:54.113 回答
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()
可能不适用于所有邪恶的浏览器,因此您必须为此找到合适的替代方案。
于 2012-11-27T08:48:07.853 回答
0
你可以这样做
/^\d{10}(,\d{10})*$/
\d{10}
匹配 10 位数字
(,\d{10})*
匹配,
和 10 位数字 0 到多次
于 2012-11-27T08:42:07.243 回答
0
与其他人类似,但无需重复该\d{10}
部分
^(?:\d{10},?\b)+$
于 2012-11-27T09:01:40.907 回答
0
您的电话号码的验证功能。如果该字段为空,则验证为真。
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;
}
于 2012-11-27T09:14:34.473 回答
0
使用以下正则表达式模式之一:
/^(\d{10}(,(?=.))?)+$/
/^(\d{10}(,(?=.)|$))+/
/^(\d{10}(,(?=.)|))+$/
/^\d{10}(,\d{10})*$/
于 2012-11-27T09:53:59.663 回答