2013-03-05 34 views
1

我有一个要求,我必须使用正则表达式对传真号码进行验证检查。传真号码中接受的字符是+。和数字从0到9.为此我写了以下JavaScript函数使用正则表达式验证javascript中的传真号码

function validateFax(checkField) { 
    if (checkField.value.length > 0) { 
     var faxRegEx = /[\+? *[1-9]+]?[0-9 ]+/; 
     if (!checkField.value.match(faxRegEx)) { 
      return false; 
     } 
    } 
    return true; 
} 

但它不帮助我检查所有可接受的字符。此外,它只检查3到4个字符,但我的传真号码可以包含任意数量的字符。我是Regex新手。任何人都可以告诉我如何修改此功能以使其与我的要求保持一致。提前致谢。

+0

该正则表达式看起来不正确。 '[]'里面的'[]'? – elclanrs 2013-03-05 06:39:07

回答

2
/^\+?[0-9]+$/ 

上面的正则表达式允许在数字开头有一个+符号。然后0-9可以出现任意次数(大于等于1)。所以这个正则表达式将允许:+123456789123456789

如果你想限制的最小位数,可以修改以下列方式正则表达式:

/^\+?[0-9]{6,}$/ 

这里{6,}表示[0-9]必须出现至少 6次。

+0

嘿,这真的有帮助,但我的可接受的性格还包括'。'(点)。我该如何管理?而且最后这个$是什么意思呢? – milind 2013-03-05 07:09:37

+0

为了迎合''',你可以在'[0-9]'中包含'.'。所以你的最终正则表达式看起来像'/^\ +?[0-9。] {6,} $ /'。 “^”和“$”符号是开始和结束锚点。如果'$'符号不在正则表达式的末尾,那么您的正则表达式也会接受'+ 1asdf'作为输入。因为它是以'+'开始的,这是允许的,然后是一个数字。因此,在末尾放置'$'可以确保整个输入遵循正则表达式。 – 2013-03-05 07:15:46

+0

谢谢完全理解 – milind 2013-03-05 07:23:32

0

这可能做的伎俩:

fax.match(/^\+?[0-9]{7,}$/); 

我在这里假设一个传真号码至少有7个数字和+一开始是可选的。

相关问题