Javascript正则表达式允许在文本框中使用多个电话号码

时间:2012-11-27 08:40:33

标签: javascript regex

我有一个文本框,我希望用户提供多个手机号码,每个号码应该只有10位数,并且应该以逗号分隔。除了逗号之外,不应该允许特殊字符,甚至空格。

6 个答案:

答案 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})*$/