0

ユーザーが double のみを入力できるテキスト入力フィールドがあります。jquery を使用してこれを実装することに成功しましたが、正規表現の経験があまりないため、使用している (複数の OR を使用する) 正規表現が適切な方法であるかどうかはわかりません。単純な正規表現を取得しようと多くの時間を費やしましたが、うまくいきませんでした。最終的に使ったのがこれ。

これが私が使用している機能です:

$('#foo').keyup(function(){
    var str = $(this).val();
    if(/(^\.+$)|(^\d+$)|(^\d+\.$)|(^\.\d+$)|(^\d+\.\d+$)/.test(str)){
        $('#foosays').text(str);
    }else{
        $("#foo")[0].value="";
    }
});

これが私の関数のデモです: http://jsfiddle.net/Esfsy/

正規表現やその他のものを改善するための提案は大歓迎です。

4

2 に答える 2

1
$('#foo').keyup(function(){
    var str = $(this).val();
    if( +str || str==='0'){ // validates as a number
        $('#foosays').text(str);
    }else{
        $("#foo")[0].value="";
    }
});
于 2013-05-07T22:10:13.017 に答える