2011-05-23 76 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, ''); 
}