【发布时间】:2023-03-17 09:47:01
【问题描述】:
我正在使用此正则表达式从 url 获取 Vimeo 视频 ID:
/\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|album\/(?:\d+)\/video\/|video\/|)(\d+)(?:[a-zA-Z0-9_\-]+)?/i
但是,当我尝试验证它时,这个正则表达式似乎有一些错字和问题,这要归功于例如 JSLint:
Expected a regexp factor and instead saw ')'.
我找不到问题的确切位置。
【问题讨论】:
-
由于您使用的是正则表达式,因此认为 JSLint 是错误的。
-
哼...我想我发现我的错误了,我有一个 |在茫茫荒野中,我只需要将“video\/|)(\d+)”替换为“video\/)?(\d+)”。它工作正常并且有效。
-
啊 - 但你原来的正则表达式也是如此!空的
or,如(a|)是有效的;它将匹配a或不匹配。所以 JSLint 是 错了。 (也许这将是一个很好的答案。使用 JSLint 是一种很好的做法,但需要注意的是它仍然只是由人类编写的。) -
我的第二次尝试是否会与空 or 具有相同的行为?我真的不是正则表达式专家......
-
好的。谢谢您的帮助。我将使用regex101.com 测试所有可能性,并检查如果 JSLint 发出警告,最好的解决方案是什么......
标签: javascript regex vimeo