繁体   English   中英

为什么这个JavaScript Regex匹配下划线?

[英]Why does this JavaScript Regex match an underscore?

我试图使用以下JavaScript RE来匹配字符串,其中允许的字符是大写或小写字母,数字,超量( - )和句点(。)。 不允许使用下划线“_”:

pattern = /^([a-zA-z0-9\-\.]+)$/

但是当我在Chrome控制台中运行测试时:pattern.test(“_ linux”);

结果是真的,但根据我们的规则应该是假的。 什么原因?

在你的正则表达式中,你写了Az (最后用小写的z )。 在JavaScript正则表达式引擎中,这转换为字符代码65到122而不是所需的65到90.并且下划线字符在此范围内(字符代码95); 查看ASCII图表 将其更改为大写Z,使您的正则表达式:

^([a-zA-Z0-9\-\.]+)$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM