2011-07-11 28 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 whoops、ありがとう:) – alex

+5

は '/ \ D +/g'であってはなりませんか? – gnysek

5

は、次の正規表現を試してみてください。

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

これはインターバル0-9でない^)であるすべての文字にマッチします。

Demo

+0

私は32秒遅れていることが嫌いです:D – bezmax

+0

@マックス、問題ありません。これにもかかわらず、あなたは最初にupvotedしたものでした:-) –

17

はシンプル:

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

は^ - NOT

+0

var removedText = self.val()。replace(/ [^ 0-9] +/g、 '');すべての数字を保持する。しかし、8.10 + 3は8103を与えるでしょう...それは質問で求められていることです。 – Joeri

2

あなたが山車をしたい場合は、代わりに/[^a-zA-Z]+/

15

使用/[^0-9.,]+//[^0-9]+/を使用するだけの数字を維持したい場合。

+1

浮動小数点値を含むことができる文字列が必要な場合;) – alex

関連する問題