javascript - 正则表达式允许空格

标签 javascript regex

对于以下正则表达式:

var regex = new RegExp("^(www\\.)?[0-9A-Za-z-\\.@:%_\+~#=]+(\\.[a-zA-Z]{2,})+(/.*)?(\\?.*)?");

我不明白为什么字符串 "www.goo gle.com"通过正则表达式测试。当我这样做时:

var regex = new RegExp("^(www\\.)?[0-9A-Za-z-\\.@:%_\+~#=]+(\\.[a-zA-Z]{2,})+(/.*)?(\\?.*)?$");

即在正则表达式字符串末尾添加 $ 可以防止上述字符串传递,这正是我想要的。

我尝试在网上找到一个“模拟器”来帮助我弄清楚正则表达式是如何匹配的,但找不到太多帮助。

最佳答案

www.goo gle.com 通过了测试,因为 www.[0-9A-Za-z-\\.@ 匹配: %_\+~#=]+goo(\.[a-zA-Z]{2,})+ 匹配。相比之下,(www\\.)?,最后两组是可选的,因此即使不匹配也满足正则表达式,因此不需要进一步匹配gle。 com

通过添加 $,正则表达式不再匹配,因为空格不与任何子表达式匹配。

关于javascript - 正则表达式允许空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44766912/

相关文章:

javascript - 我应该使用什么脚本来实现平滑的 anchor 滚动?我试过的都不起作用

python - 我需要帮助使用 notepad++ 和 python 脚本插件在文本文件中对货币转换的数字进行舍入

php - 部分正则表达式不应该匹配。或者,最后

python - 为什么我在原始来源列表中找不到这些单词?

javascript - 在数据库中存储帖子显示顺序

javascript - 包含许多断言的 Cypress 测试的最佳实践

javascript - 如何在vue.js中显示富文本内容?

javascript - Mocha hooks 不仅在 WebStorm 中被部分识别

java - 正则表达式的控制台或扫描仪?

python - 将控制台输出写入 python 中的文件