Regex表示用句点分隔的3个3位数的值

Regex for 3 3-digit values separated by a period

本文关键字:3个 3位 分隔 表示 句点 Regex      更新时间:2024-05-24

我正在为软件版本字段编写正则表达式,该字段具有以下格式:

xxx.yyy.zzz

这3个部分中的每一部分可以有1到3个数字。例如:

1.2.3
100.2.300
111.222.333

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

[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,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

您应该用'转义点,也可以使用'd,意思是数字

'd{1,3}'.'d{1,3}'.'d{1,3}

试试这个

'd{1,3}'.'d{1,3}'.'d{1,3}

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

Regex演示

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;