2011-05-23 30 views
10

我用這個正則表達式驗證手機用javascript代替非數字字符?

但是當有人輸入進入任何特殊字符*-/()-_ ..(除+)我想用「」(無)來代替這個角色。 我該怎麼做?

var phone = /^\+(90)[2-5]{1}[0-9]{9}$/; 
+0

可以提供和舉例,你想做什麼? – sergio 2011-05-23 12:53:35

回答

22

這將刪除所有非數字字符的給定字符串中:

myString = myString.replace(/\D/g,""); 

\D匹配任何不是一個數量; \d匹配一個數字。


誤讀了這個問題。要刪除所有非數字字符除了+,做到:

myString = myString.replace(/[^\d\+]/g,""); 
+0

但我只想加(+)您知道我的電話號碼以+90開頭 – PsyGnosis 2011-05-23 12:46:21

+0

@失敗:抱歉,我誤解了您的問題。剛剛編輯這個答案與解決方案,將保持+符號。 – DavidJCobb 2011-05-23 12:48:17

+0

無需在字符組內部轉義「+」。 – 2011-05-23 12:48:53

2
var input = document.getElementById('phone'); 
input.onkeypress = function(){ 
    input.value = input.value.replace(/[^0-9+]/g, ''); 
}