2017-01-12 7 views
0

私はさまざまな入力データのパラメータを検証しています。.match()で文字列を検証する

私は、.matchとRegExpを理解しようとしています。

!str.match(/^[0-9]+$/) 

と文字列は、何が含まれている場合は失敗します。文字列はONLY 0-9文字が含まれている場合

これは検証するようです。

正しく理解されているか、または文字列に0〜9文字が含まれているかどうかを単に確認しますか?

だから私が行うことができます:正規表現に対する文字列に一致するときmatch()方法が試合を取得し

if (!string.match(/^[0-9]+$/)) 
    console.log('fails as the string contains other characters than 0-9'); 
+0

なぜコードを実行して、それが何をしているのか見てみませんか?または、正規表現のチュートリアルを読む?または、regex101.comのような正規表現チェッカーに貼り付けます。これは、それが意味することの英語のような説明を与えますか? –

答えて

0

あなたの正規表現は

^意味/^[0-9]+$/次のとおりです。文字列

[0-9]の開始位置をアサート:0(ASCII 48)と9(ASCII 57)

の間の範囲内の単一の文字

+:数量詞 - 1と無制限の時間の間の一致、

$できるだけ多くの回数:文字列の最後に位置を指定します

次のコードスニペットは、test()メソッドを使用して文字列内の一致をテストしています。

var regex = /^[0-9]+$/; 
 

 
console.log(regex.test("0123")); //true only 0-9 
 
console.log(regex.test("1")); //true only 0-9 
 
console.log(regex.test("")); //false Not at least 1 character 0-9 
 
console.log(regex.test("a0123")); //false contains a letter 
 
console.log(regex.test("abc")); //false contains multiple letters

+0

あなたの記述は 'match'について説明しています。あなたの例は' test'を使います。 –

1

個人的に、私はこのようなものを使用します:

string='188867899'; 
 
var regex = /\D/; //any non-digit character 
 
if (regex.test(string)) //if string contains any non-digit char 
 
console.log('String 1 contains non-digit chars'); 
 

 
string2='1888y67899'; 
 
var regex = /\D/; //any non-digit character 
 
if (regex.test(string2)) //if string contains any non-digit char 
 
console.log('String 2 contains non-digit chars');

をしかし、それは選択肢(味、何でも)、多かれ少なかれの問題です...

関連する問題