我想从字符串中获取数字,即1.0.3。我只想要用两个点格式化的数字,并在它们之前使用ver#。我的正则表达式实现是否正确。这是工作,但它会在任何条件下失败吗?
var str = "https://example.x.y.com/z/ver#1.5.0";
var res = str.match(/ver#.\.(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)/g);
return res;
答案 0 :(得分:1)
我想从字符串中获取数字,即1.0.3。我只想要用两个点格式化的数字,并且在它们之前有
ver#
这可以通过简单的正则表达式完成:/ver#(\d+\.\d+\.\d+)/
使用\1
或$1
捕获第一个群组。
的 Regex101 Demo 强>
的 JS Fiddle 强>
var str = "https://example.x.y.com/z/ver#1.5.0";
var res = str.match(/ver#(\d+\.\d+\.\d+)/);
document.getElementById("res").innerHTML = res ? res[1] : "";
<div id="res"/>