【发布时间】:2013-07-14 00:36:00
【问题描述】:
所以我在 PHP 中有一个可以工作的 preg_match,但是,在我的一生中,我无法使用 Javascript/jQuery 获得相同的功能。
这是我目前所坚持的:
yt=$('#yt').val().match(/~^\(?:https?://\)?(?:www\.)?(?:youtube\.com|youtu\.be)(?:/)(?:watch\?v=)?([^&]+)~x/);
alert(yt[1]);
这是 PHP 中的工作函数:
$rx = "~"
."^(?:https?://)?" // Optional protocol
."(?:www\.)? " // Optional subdomain
."(?:youtube\.com|youtu\.be)" // Mandatory domain name
."(?:/)" //mandatory bracket
."(?:watch\?v=)?" //optional URI
."([^&]+)" //video id as capture group 1
."~x";
$has_match = preg_match($rx, $url, $matches);
知道如何让它发挥作用吗?
我在 Stack 上发现了一些类似的帖子,但它们远没有这个正则表达式复杂,而且我无法理解其中的差异。
【问题讨论】:
-
~是您在 PHP 中的分隔符,但在 JS 中它始终是/,因此您需要转义所有/并摆脱~。看到提示有问题的语法突出显示?
标签: php javascript jquery regex youtube