php - 将PHP RegEx转换为JavaScript RegEx

标签 php javascript regex youtube

我有一个PHP正则表达式,用于从网址中提取YouTube视频代码。

我希望将其与JavaScript中的客户端正则表达式匹配。谁能告诉我如何将以下PHP正则表达式转换为JavaScript?

preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=embed/)[^&\n]+|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\‌​n]+#", $url, $matches);

非常感谢,谢谢!

最佳答案

我认为唯一的问题是摆脱后置断言(?<=...),Javascript不支持它们。

它们的优点是,您可以使用它们来确保模式在某些事物之前,但是它们不包含在比赛中。

因此,您需要删除它们,这意味着将(?<=v=)[a-zA-Z0-9-]+(?=&)更改为v=[a-zA-Z0-9-]+(?=&),但是现在您的匹配项以“v =”开头。

如果您只需要验证而不需要匹配的部分,那么就可以了。

但是,如果需要在v=之后的部分,则将所需的模式放到捕获组中,然后继续使用这些捕获的值。

v=([a-zA-Z0-9-]+)(?=&)

然后,您将在第一组的$ 1中找到匹配的子字符串,第二组的$ 2中找到匹配的子字符串,$ 3 ...

关于php - 将PHP RegEx转换为JavaScript RegEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9309349/

相关文章:

java - 如何从 Java 中的输入文本中删除标点符号?

javascript - 在 jQuery AJAX 中第二次尝试后表单提交不起作用

php - Facebook 请求权限示例?

javascript - 在 Aurelia 中设置 URL 而不刷新整个模板

javascript - 如何在 Google 文档中创建宏

regex - 在 Go 中,我如何声明我要匹配各种空间,包括不间断的空间?

php - Mac 本地主机 : Cannot find driver for SQLSRV 上的 Laravel 4

php - Zend Navigation 显示菜单中的所有项目

javascript - 最小化 html 中的 javascript 代码

java - 正则表达式查找所有带有 http url 的 img 标签