2017-01-16 22 views
0

時間を検索しましたが見つかりませんでした。私は量値を含むテキストフィールドを検証するためにJavaScriptの正規表現が必要です。値はゼロまたは0より大きい任意の整数にすることができます。数字がゼロでない限り、数字はゼロで始めることはできません。量 "文字列"の先頭、中間、または終わりに空白がある場合、一致してはなりません。Javascript正規表現による数値の一致0または0より大きい整数

"0" < - 一致する必要があります。 "467" < - 一致するはずです。 "098" < - 一致してはいけません。 "1 3" < - 一致してはいけません。

これまでは、Javascriptで2つのReg ExpとORを使用する必要がありました。それは働いている。ここに私のコードです:

function qtyIsValid(strQty){ 
    var isValid; 
    var reg1 = new RegExp('^0{1}$'); // <-- This matches a single ZERO and fails if any whitespace anywhere 
    var reg2 = new RegExp('^[1-9]+$'); // <-- This matches any number greater than zero and fails if any whitespace anywhere 

    if (reg1.test(strQty) || reg2.test(strQty)){ 
      isValid = true; 
    }else{ 
      isValid = false; 
     } 
return isValid; 
} 

しかし、これらの2つの正規表現をJavascriptで1つに結合できますか?

ありがとうございます。

+1

あなたは 'のparseInt(strQty)> = 0 &&のparseInt(strQty).toString()==を使用することができますが*値を気にしているためstrQty' –

+1

は同様に暗黙のうちに、@JaromandaX言いました*あなたがマッチングしている番号の場合は、それを整数に変換する方がよいでしょう。 – math2001

+0

私のコードであなたの提案を試みました。これはReg Expを使用しませんが、それは私の必要性のためにうまくいくような素晴らしいソリューションです。空白、数字以外の文字、数字の前に0が入ります。驚くばかり。 – user1816113

答えて

1

次の例のようにこれを使用することができます。

r = /^(0|[1-9]\d*)$/ 
 
console.log("0".match(r)); 
 
console.log("467".match(r)); 
 
console.log("098".match(r)); 
 
console.log("1 3".match(r));

+0

ありがとう!このReg Expressionは、私が必要としていたものと全く同じでした。私は式でORを達成する方法を理解することができませんでしたが、私は今あなたの解決策から理解していると思います。 – user1816113

+0

私はお手伝いできることを嬉しく思います。 – Dekel

0

/^(0+|[1-9]\d*)$/だけ0の配列、またはその0で始まる0にしていない等しくない番号が含まれている任意の文字列を。

console.log("0: ", /^(0+|[1-9]\d*)$/.test("0")); 
 
console.log("000: ", /^(0+|[1-9]\d*)$/.test("000")); 
 
console.log("055: ", /^(0+|[1-9]\d*)$/.test("055")); 
 
console.log("123: ", /^(0+|[1-9]\d*)$/.test("123")); 
 
console.log("1 3: ", /^(0+|[1-9]\d*)$/.test("1 3"));

+0

あなたのソリューションをありがとう。 - > 0+ < - 私はそれがちょうど - > 0 < - であるべきだと思うので、私が必要としていた通りに正確に動作しません。私は、数字の前に0をつけないような解決策を求めていましたが、あなたの解決策は00です。しかし、あなたの解決策はReg Expsをもう少し理解する助けになりました。 – user1816113

+0

あなたは大歓迎です!私はちょうど '00 ... 00'がすべてゼロになっているので、有効と考えました。 –

関連する問題