したがって、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 で同様の投稿をいくつか見つけましたが、これらはこの正規表現よりもはるかに複雑ではなく、違いに頭を悩ませることができませんでした。