我正在编写一个软件版本字段的正则表达式,其格式如下:
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}
应该修改哪些内容才能使其正常工作?
答案 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}
的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;