私は文字列が正規表現と一致するかどうかを確認するためにいくつかのクライアント側の検証を行うためにJavaScriptを(jQueryを使用することができます)を使用したいです。
^([a-z0-9]{5,})$
理想的には、trueまたはfalseを返す式になります。
私はJavaScriptの初心者です、match()
は私が必要とすることをしますか?文字列の一部が正規表現と一致するかどうかをチェックするようです。
必要なものがすべてブール値の場合は、regex.test()
を使用してください。
/^([a-z0-9]{5,})$/.test('abc1'); // false
/^([a-z0-9]{5,})$/.test('abc12'); // true
/^([a-z0-9]{5,})$/.test('abc123'); // true
...キャプチャする必要がないので、正規表現から()
を削除できます。
test()
メソッドを使う:
var term = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(term)) {
console.log("Valid");
} else {
console.log("Invalid");
}
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
文字列が正規表現と一致するかどうかだけを知りたい場合は/youregexp/.test(yourString)
を使用してください。
これは特定のHTMLタグを探す例です。/someregex/.test()
がブール値を返すことは明らかです。
if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');
let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let regexp = /[a-d]/gi;
console.log(str.match(regexp));
一致するものが存在しない場合は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]
やってみる
/^[a-z\d]{5,}$/.test(str)
console.log( /^[a-z\d]{5,}$/.test("abc123") );
console.log( /^[a-z\d]{5,}$/.test("ab12") );