web-dev-qa-db-ja.com

文字列がJSの正規表現と一致するかどうかを確認する

私は文字列が正規表現と一致するかどうかを確認するためにいくつかのクライアント側の検証を行うためにJavaScriptを(jQueryを使用することができます)を使用したいです。

^([a-z0-9]{5,})$

理想的には、trueまたはfalseを返す式になります。

私はJavaScriptの初心者です、match()は私が必要とすることをしますか?文字列の一部が正規表現と一致するかどうかをチェックするようです。

587
Richard

必要なものがすべてブール値の場合は、regex.test()を使用してください。

/^([a-z0-9]{5,})$/.test('abc1');   // false

/^([a-z0-9]{5,})$/.test('abc12');   // true

/^([a-z0-9]{5,})$/.test('abc123');   // true

...キャプチャする必要がないので、正規表現から()を削除できます。

960
user113716

test()メソッドを使う:

var term = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(term)) {
    console.log("Valid");
} else {
    console.log("Invalid");
}
137

match()も使えます。

if (str.match(/^([a-z0-9]{5,})$/)) {
    alert("match!");
}

しかしtest()here を読むことができるので速いようです。

match()test()の間の重要な違い:

match()は文字列でのみ動作しますが、test()は整数でも動作します。

12345.match(/^([a-z0-9]{5,})$/); // ERROR
/^([a-z0-9]{5,})$/.test(12345);  // true
/^([a-z0-9]{5,})$/.test(null);   // false

// Better watch out for undefined values
/^([a-z0-9]{5,})$/.test(undefined); // true
65
pmrotule

文字列が正規表現と一致するかどうかだけを知りたい場合は/youregexp/.test(yourString)を使用してください。

43
user278064

これは特定のHTMLタグを探す例です。/someregex/.test()がブール値を返すことは明らかです。

if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');
6
user2449231
 let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 let regexp = /[a-d]/gi;
 console.log(str.match(regexp));
2
Aysun

一致するものが存在しない場合はnullを返す、それ以外の場合は有用なオブジェクトを返すexecuteメソッドを使用することをお勧めします。

let case1 = /^([a-z0-9]{5,})$/.exec("abc1");
console.log(case1); //null

let case2 = /^([a-z0-9]{5,})$/.exec("pass3434");
console.log(case2); // ['pass3434', 'pass3434', index:0, input:'pass3434', groups: undefined]
0
Juan Navarrete

この花を試してください:

/^[a-z0-9\_\.\-]{2,20}\@[a-z0-9\_\-]{2,20}\.[a-z]{2,9}$/.test('[email protected]');

本当の

0
Jaber Alshami

やってみる

 /^[a-z\d]{5,}$/.test(str)
console.log( /^[a-z\d]{5,}$/.test("abc123") );

console.log( /^[a-z\d]{5,}$/.test("ab12") );
0