繁体   English   中英

Javascript正则表达式可选字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM