javascript - 重复时,正则表达式规则段未按预期工作
问题描述
我正在使用 JavaScript 正则表达式来检查有效的 url 格式。我当前的迭代是:
^(?!([^\?\s]*\?[^\?\s]*?as_asd=[^\?\s]*-_-[^\?\s]*-_-[^\?\s]*(-_-)?[^\?\s]*)).*$
使用测试字符串:
https://www.asdf.com/?as_asd=asdf-_-asdf-_-asdf-_-asdf
我将所有内容都包装在一个负前瞻中以防止匹配,除非 url 破坏了格式。一切都按预期工作,直到第二次之后-_-
。我的期望是[^\?\s]*
应该防止输入空格字符或问号而不触发匹配,但是在第二个-_-
或可选字符之后添加(-_-)?
不会触发匹配。
我已经在几个正则表达式调试器上检查了这一点,但仍然无法弄清楚。我有什么误解?谢谢!
解决方案
推荐阅读
- amazon-web-services - 放大 @model @auth 不从 onCreate 添加所有者
- javascript - PHP 和 2
- javascript - 由于跨站点错误,无法从 chrome 扩展程序的弹出窗口中打开 YouTube
- mysql - LEFT JOIN 表查找不匹配的行,同一张表
- android - 需要从资源中澄清 cancelReason:SubscriptionPurchase
- python - 在 Atom 上导入 python 模块的问题
- azure - 如何监控 Azure 应用服务中的应用程序事件日志?
- javascript - 在for循环中检查父元素是否为按钮
- session - Google Script 是否有等效于 python 的 Session 对象?
- javascript - nuxtjs 应用程序商店可以是动态的吗?