我想使用JavaScript(我也可以使用jQuery)来做检查字符串是否匹配正则表达式^([a-z0-9]{5,})$,并得到一个真或假的结果。

Match()似乎是检查字符串的一部分是否匹配正则表达式,而不是整个正则表达式。它能解决问题吗?我能用它来解决问题吗?如何?


当前回答

const regExpStr = "^([a-z0-9]{5,})$" const result = new RegExp(regExpStr, 'g')。test("Your string") //这里我使用了'g',意思是全局搜索 Console.log (result) //匹配则为true,不匹配则为false

其他回答

如果你想要一个布尔结果,请使用regex.test():

console.log (/ ^ ([a-z0-9] {5}) $ / test('他们'));/ /错误 console.log (/ ^ ([a-z0-9] {5}) $ / test (' abc12 '));/ /正确的 console.log (/ ^ ([a-z0-9] {5}) $ / test(“abc123”));/ /正确的

...您可以从regexp中删除(),因为您不需要捕获。

try

 /^[a-z\d]{5,}$/.test(str)

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

如果您只想知道您的字符串是否匹配regexp,请使用/youregexp/.test(yourString)。

使用test()方法:

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

我建议使用execute方法,如果不存在匹配则返回null,否则它将返回一个有用的对象。

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]