[英]Javascript Regex optional character
我有一个正在使用的正则表达式模式(从Stack Overflow获取)从vimeo URL中提取视频ID:
var regExp = /http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/;
var match = url.match(regExp);
无论是否指定了http或https,我都需要它。 我试过了
var regExp = /http(s)?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/;
但是http和https都失败了。
帮助一个兄弟。
它失败是因为您正在创建一个额外的捕获组,这意味着捕获组索引将与以前不同。
要创建s
而不创建捕获组,您可以简单地添加?
,你不需要括号。
/https?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/
要创建非捕获组,您可以使用(?:)
,但这不是必需的,只是为示例显示:
/http(?:s)?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/
如果你想做“s”选项,请仅使用
s?
即, https?
将匹配http和https
这个正则表达式应该工作:
var regExp = /https?:\/\/(www\.)?vimeo\.com\/(\d+)/;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.