Answers:
使用regex.test()
,如果你想要的是一个布尔结果:
console.log(/^([a-z0-9]{5,})$/.test('abc1')); // false
console.log(/^([a-z0-9]{5,})$/.test('abc12')); // true
console.log(/^([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");
}
RegExp
允许将变量值注入到正则表达式字符串中。
new RegExp("^([a-z0-9]{5,})$")
为了使它起作用,必须删除双引号
您也可以使用match()
:
if (str.match(/^([a-z0-9]{5,})$/)) {
alert("match!");
}
但是test()
,您可以在这里阅读,似乎更快。
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
match
成员)。如果您想将其与正则表达式一起使用,我建议将您的数字显式转换为字符串String(123)
。
test
当我们只想验证字符串以匹配正则表达式而不从中提取子字符串时,性能会提高30%。
您可以尝试一下,它对我有用。
<input type="text" onchange="CheckValidAmount(this.value)" name="amount" required>
<script type="text/javascript">
function CheckValidAmount(amount) {
var a = /^(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d+)?$/;
if(amount.match(a)){
alert("matches");
}else{
alert("does not match");
}
}
</script>
请尝试这朵花:
/^[a-z0-9\_\.\-]{2,20}\@[a-z0-9\_\-]{2,20}\.[a-z]{2,9}$/.test('abc@abc.abc');
真正
0-9
可以将aaaaaaaaaaaaaaaaaaaaaaaa降低至\d
。哦,捕获小组不是必需的。
我建议使用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]
const regExpStr = "^([a-z0-9]{5,})$"
const result = new RegExp(regExpStr, 'g').test("Your string") // here I have used 'g' which means global search
console.log(result) // true if it matched, false if it doesn't