我有一个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/