正则表达式test() 总是返回true

2019-8-17 17:21| 作者: admin| 查看: 3129| 评论: 1|来自: 蚂蚁部落

很多刚使用正则表达式的朋友可能会遇到这样一个"奇怪"的现象。

那就是使用test()来检测字符串的时候,返回值总是true,即便被检测的字符串不符合要求。

当然造成这种现象的原因有多种,下面分析一个比较典型的案例。

代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
var reg=/[a-zA-Z0-9]{1,6}/;
var str="zdlqust451210788";
console.log(reg.test(str));

正则表达式的本意是匹配1-6位字母或者数字组成的字符串,很明显字s字符串的长度超过6,返回值还是true。

上面的代码中,正则表达式意思是,只要字符串str中有匹配的内容就返回true。

代码修改如下:

[JavaScript] 纯文本查看 复制代码运行代码
var reg=/^[a-zA-Z0-9]{1,6}$/;
var str="zdlqust451210788";
console.log(reg.test(str));

上面的代码做一下限制就可以实现正确验证了。

关于test()方法可以参阅正则表达式 test()一章节。


1

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

发表评论

最新评论

引用 w1zv19sa 2019-8-21 14:19
54

查看全部评论(1)

返回顶部