2016-08-04 12 views
0

タスクが単純に見えます。私は、firefoxのキーアップで "数字"タイプの入力フィールドから数値以外の文字を削除する必要があります。Firefox Javascript: "数字"タイプの入力から数値以外の文字を削除する - FFの問題

コード:

$("#field").on("keyup", function() { 
regex = /[\\D]+/; 
$(this).val($(this).val().replace(regex, '')); 
}); 

は、残念ながら、すぐに非数値文字がフィールドに入ると、その全体の内容は、空の文字列に置き換えられます。この例では、作品

:たとえば

:空に

234D =>は(質問が閉じられているので、ここでは)234

ソリューションでなければなりません。私はフィールドタイプと関係があることを知りました。 "number"タイプのフィールドの入力に数字以外の文字が含まれていると、firefoxは入力を表示しますが、入力オブジェクトには格納しません。テキスト入力を使用するとすぐにすべてがうまく動作します。 Firefoxの問題と思われます。

私はこの質問は重複していないと思うので、それは "number"というタイプの入力フィールドを持つFirefoxの問題です。

+1

'正規表現=/\ D + /;' '...../[\\ D] +/'' \ s'と 'Ds'の組み合わせにマッチする –

+0

' var regex =/\ D +/g'を使用してすべての数字以外の文字を削除します。 ' – Tushar

+0

'/[\\ D] + /; 'は' \\ D 'にマッチします。 '$(this)).val(function(i、val){return val.replace(/ \ D +/g、' ');}) ''と ''は ''です。コンストラクタの表記法を使うと、 'new RegExp(" [\\ D] + "、" g ")'は動作しますが、正規表現のリテラルでは、 '\' '文字。 –

答えて

1

var val = '234d'.replace(/[^0-9]/g, ''); 
 

 
console.log(val);

0
var myString = '234d'; 

この行を試してみてください:

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

参考: strip non-numeric characters from string

+0

この例は動作します。私はフィールドタイプと関係があることを知りました。 "number"タイプのフィールドの入力に数字以外の文字が含まれていると、firefoxは入力を表示しますが、入力オブジェクトには格納しません。テキスト入力を使用するとすぐにすべてがうまく動作します。だから私はそれがFirefoxの問題だと思う。 –

関連する問題