检查字符串是否与JS中的正则表达式匹配

JavaScript

番长猴子

2020-03-11

我想使用JavaScript(可以与jQuery一起使用)进行一些客户端验证,以检查字符串是否与正则表达式匹配:

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

理想情况下,它将是一个返回true或false的表达式。

我是JavaScript新手,match()我需要做什么?似乎要检查字符串的一部分是否匹配正则表达式,而不是整个字符串。

第647篇《检查字符串是否与JS中的正则表达式匹配》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

5个回答
StafanJinJin 2020.03.11

You can try this, it works for me.

 <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小卤蛋Pro 2020.03.11

尝试

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

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

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

小小猴子 2020.03.11

使用/youregexp/.test(yourString),如果你只是想知道你的字符串是否与正则表达式匹配。

番长梅 2020.03.11

您也可以使用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
Tony路易 2020.03.11

使用test()方法:

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android