2011-03-03 66 views
2

有人可以提供一个正则表达式,只允许数字和可选连字符jQuery验证的正则表达式

我已经尽量了作为phone_number.match(/ [0-9 - ] /);但没有运气

+0

一个输入解决方案是否要验证中美的电话号码? –

+0

是的,但只想验证用户是否可以输入没有连字符的数字,因此5454542542542或542542-54254254-542会通过? – monkeylee

回答

5

与破折号穿插下面的比赛号码,但没有双破折号:

/^\d+(-\d+)*$/ 
0

尝试了这一点...

/^[0-9]+(\-[0-9]+)*$/ 

不是电话号码,但你的意见

+0

谢谢但是允许数字后面的字母,比如54hghgd是pass – monkeylee

+0

不,不是吗?如果你想匹配整个字符串,使用/^[0-9] +(\ - [0-9])* $ /' –

+0

使用/^[0-9] +(\ - [0-9]) * $ /然后878-554失败 – monkeylee

0
/^\w*-?\w*-?\w*$/ 
  • \ W *用字母数字字符重复0或多次。
  • - ?可选连字符。
+0

需要适应此/^\ d [ - ]?/因为长度是可变的,但仍然会允许中间的字母,如6hjh36-6-53653 – monkeylee

+0

我纠正答案。 – melhosseiny

0
Check this out... 

VAR PHONENO =/^ + [0-9] +( - [0-9] +)* $ /?;

答+ 954-555-1234

0

这里是一个连字号

$('input[type="tel"]').keyup(function() { 
 
    this.value = this.value 
 
    .match(/\d*/g).join('') 
 
    .match(/(\d{0,3})(\d{0,3})(\d{0,4})/).slice(1).join('-') 
 
    .replace(/-*$/g, ''); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="tel"></input>