正则表达式由3个3位数值组成,以句点分隔

时间:2016-04-13 08:29:47

标签: javascript regex

我正在编写一个软件版本字段的正则表达式,其格式如下:

xxx.yyy.zzz

这三个部分各有1到3位数字。例如:

1.2.3
100.2.300
111.222.333

我为此目的制定了这个正则表达式,但这是不正确的:

[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}

应该修改哪些内容才能使其正常工作?

3 个答案:

答案 0 :(得分:3)

你需要逃避正则表达式中的点,否则它们将被视为任何字符。

var regex = /[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/;
regex.test('1.2.3'); //true
regex.test('100.2.300'); //true
regex.test('111.222.333'); //true

如果你没有逃避点,你将能够在点的位置提供任何角色。

var badRegex = /[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/;
badRegex.test('1a2z3'); //true
badRegex.test('100-2#300'); //true
badRegex.test('111f2229333'); //true

答案 1 :(得分:2)

您应该使用\转义点,也可以使用\d表示数字

\d{1,3}\.\d{1,3}\.\d{1,3}

答案 2 :(得分:1)

试试这个

\d{1,3}\.\d{1,3}\.\d{1,3}

[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

Regex demo

的Javascript

var re = /\d{1,3}\.\d{1,3}\.\d{1,3}/g; 

var re = /[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/g;