2011-03-03 102 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>