2016-05-19 4 views
0

私はユーザーが小数点のみを入力できるようにしようとしています。私はこれをチェックするreg式を見つけましたが、それはどういうふうに逆に働いているようです。今、ユーザが10進数でない数字を入力すると、フォーム上のボタンが有効になります。ユーザーが10進数を入力した場合にのみ、ボタンを有効にします。 ここに私のコードです。reg式を使用してユーザーが小数点を入力したことを確認しますか?

  decimal: function (val/*,rule*/){ 
 
       if(!val){ 
 
        return true; 
 
       } 
 
       return /^[0-9]{1,6}(?:[,.][0-9]{0,5})?$/.test(val); 
 
      },

+0

停止!正規表現はありません!キーボードのイベントをキャプチャする前に、置換するものをフィルタリングします。私の[前の回答]のデモを確認してください(http://stackoverflow.com/questions/29543514/how-to-realtime-calculate-values-from-input-checkbox-radio-and-selectbox/29546405#29546405) –

+0

もしあなたの式は真を返す正規表現にマッチします。私が見ることができるところから、あなたが価値がないなら、あなたは真実を返す。だからあなたは "return!regex.test(val);" – Groben

答えて

1

あなたの機能が正常に動作します。私はこのように返す値を反転させることをお勧め:

decimal: function (val/*,rule*/){ 
    if(!val){ 
     return true; 
    } 
    return !/^[0-9]{1,6}(?:[,.][0-9]{0,5})?$/.test(val); 
} 
関連する問題