求一个关于版本号的正则表达式

关于软件版本号的正则,可以有字符数字.-最长40个字符。该怎么写。

d+(.\d+){0,2}

解释:
\d+ #匹配数字
(.\d+) #匹配数字之后还有.数字
{0,2} #表示可以重复0-2次,匹配1.1和1.1.2的情况
如果想要匹配
1.1.1.1.1.1.1.1.1.1.1.1.1.1.1这样的情况,可以把{0,2}改成*不限数量

\d+(.\d+)*

 \d+(\.\d+){0,2}

.是需要加转义的,否则会匹配任意字符

版本号也有带字母的?理论上可行但是实际没人用

// 表示字母数字下划线+短横杠
var reg1 = /^[a-zA-Z0-9.\d+\x7f-\xff_-]{3,30}$/;
// 亲自验证有作用