0

我正在尝试使用 javascript 运行正则表达式检查,以确保字符串遵循模式:

NNNN-NN-NN

(其中 N = 0-9 的任何数字)我需要确保破折号也到位。

因此,任何 4 个数字后跟一个破折号,然后是任何 2 个数字,然后是一个破折号,然后是任意两个数字。

我如何将其写为正则表达式?

4

4 回答 4

8

这里是:

^[0-9]{4}-[0-9]{2}-[0-9]{2}$
于 2012-05-21T14:25:05.010 回答
4

最简单的正则表达式就是:

/^\d{4}-\d\d-\d\d$/

[\d\d短于\d{2}]

你不能忘记锚定正则表达式,否则它将匹配包含该模式的所有字符串,而不仅仅是那些完全匹配的字符串。

为了额外的好处,如果您打算随后提取这三个组件,请使用以下命令:

var re = /^(\d{4})-(\d\d)-(\d\d)$/;
var test = "1234-56-78";
var vals = test.match(re);

// vals = ['1234-56-78', '1234', '56', '78'];
于 2012-05-21T14:29:24.423 回答
0

\d{4}-\d{2}-\d{2} 我认为这相当简洁

于 2012-05-21T14:28:58.137 回答
0
\d{4}(-\d{2}){2}

我认为上面的正则表达式是合适的。

于 2012-05-21T14:26:27.520 回答