正则expression式:获取从string使用javascript编号格式的nnn?

我正在尝试从string获得数字即1.0.3。 我只想要用两个点格式化的数字,在他们之前有版本号。 我的正则expression式实现是否正确。 这是工作,但会在任何情况下失败?

var str = "https://example.xycom/z/ver#1.5.0"; var res = str.match(/ver#.\.(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)/g); return res; 

https://jsfiddle.net/tthfkzjt/

我正在尝试从string获得数字即1.0.3。 我只想要用两个点格式化的数字,在他们之前有版本号

这可以通过简单的正则expression式来完成:/ /ver#(\d+\.\d+\.\d+)/

使用\1$1捕获第一组。

Regex101演示

JS小提琴

 var str = "https://example.xycom/z/ver#1.5.0"; var res = str.match(/ver#(\d+\.\d+\.\d+)/); document.getElementById("res").innerHTML = res ? res[1] : ""; 
 <div id="res"/>