8

入力が純粋な正の整数であることを確認する正規表現を作成しようとしています (最大 10 桁ですが、そのロジックを他の場所に適用しています)。

現在、これは私が使用している正規表現です(ここから取得しました):

 ^(([1-9]*)|(([1-9]*).([0-9]*)))$

この関数では:

if (/^(([1-9]*)|(([1-9]*).([0-9]*)))$/.test($('#targetMe').val())) {
            alert('we cool')
        } else {
            alert('we not')
        }

しかし、私はそれを機能させることができないようで、それが正規表現なのか関数なのかわかりません。%, を禁止する必要があります。と ' も同様です。数字だけが欲しい。誰かが私を正しい方向に向けることができますか?

4

7 に答える 7

22

次の方法で実行できます。

/^[0-9]{1,10}$/

コード:

var tempVal = $('#targetMe').val();
if (/^[0-9]{1,10}$/.test(+tempVal)) // OR if (/^[0-9]{1,10}$/.test(+tempVal) && tempVal.length<=10) 
  alert('we cool');
else
  alert('we not');

ライブデモを参照

于 2013-01-07T13:51:54.763 に答える
8
var value = $('#targetMe').val(),
    re    = /^[1-9][0-9]{0,8}$/;

if (re.test(value)) {
    // ok
}
于 2013-01-07T13:48:20.143 に答える
3

正規表現が必要ですか?

var value = +$('#targetMe').val();
if (value && value<9999999999) { /*etc.*/ }
于 2013-01-07T13:50:15.637 に答える
3
  var reg      = /^[0-9]{1,10}$/;
  var checking = reg.test($('#number').val()); 

  if(checking){
    return number;
  }else{
    return false;
  }
于 2013-08-19T06:10:09.300 に答える
1

これが、コードを盲目的にコピーする場合の問題です。コピーした正規表現は、任意の桁数の浮動小数点数を含む数値用です0。小数点以下の桁を許可しないため、バグがあります。

次の正規表現が必要です。

^[1-9][0-9]{0,9}$
于 2013-01-07T13:48:46.237 に答える