2011-07-11 172 views
34

如何删除字母,符号(如∞§¶•ªºº«≥≤÷),但保留纯数字0-9,我希望能够在输入字段中不允许字母或某些符号,但只保留数字。正则表达式删除字母,符号除外

Demo

如果你把任何符号如¡ € # ¢ ∞ § ¶ • ª或其他符号,它仍然不会从输入字段中删除它。你怎么也删除符号? \w修饰符也不起作用。

+0

'\ w'不是修饰符,而是'[A-Za-z0-9_]'或*单词字符*的快捷键。 – alex

回答

61

您可以使用\D这意味着非数字

var removedText = self.val().replace(/\D+/g, ''); 

jsFiddle。您可以使用HTML5 number input

<input type="number" name="digit" /> 

jsFiddle

+2

可能想要替换的不仅仅是第一个非数字的发现 - 更改正则表达式到'/ \ D + /' –

+0

@Doug哎呀,谢谢:) – alex

+5

不应该是'/ \ D +/g'吗? – gnysek

5

试试下面的正则表达式:

var removedText = self.val().replace(/[^0-9]/, ''); 

这将每一个字符是在间隔0-9不^)相匹配。

Demo

+0

我讨厌迟到32秒:D – bezmax

+0

@最大,没问题。尽管如此,你还是第一个得到了投票:-) –

17

简单:

var removedText = self.val().replace(/[^0-9]+/, ''); 

^- 不单单是

+0

var removedText = self.val()。replace(/ [^ 0-9] +/g,'');保留所有数字。尽管8.10 + 3会给8103 ...不确定这是问题中的要求。 – Joeri

2

如果你想只保留数字则使用/[^0-9]+/代替/[^a-zA-Z]+/

15

使用/[^0-9.,]+/,如果你想浮动。

+1

如果您想要一个可以包含浮点值的字符串;) – alex

相关问题