如何为00.00创建正则表达式?

时间:2016-04-08 05:15:31

标签: javascript regex

我想创建一个验证以下所有条件的正则表达式。只允许数字[0-9]值。

  • 00.00
  • 0.00
  • 00.0
  • 0.0
  • 00
  • 0

2 个答案:

答案 0 :(得分:2)

根据OP /修改后的问题的评论,如果您想要1或2位数字,可选地后跟(一个句点,后跟1或2个数字),您可以使用此正则表达式:

var regex = /^\d{1,2}(\.\d{1,2})?$/;
// The ( ) groups several things together sequentially.
// The ? makes it optional.

如果您想要1位或2位数字,后跟一个句点,后跟1或2位数字:

var regex = /^\d{1,2}\.\d{1,2}$/;
// The / denotes the start and end of the regex.
// The ^ denotes the start of the string.
// The $ denotes the end of the string.
// The \d denotes the class of digit characters.
// The {1,2} denotes to match 1 to 2 occurrences of what was encountered immediately to the left.
// The \. denotes to match an actual . character; normally . by itself is a wildcard.

// happy paths
regex.test('00.00'); // true
regex.test('0.00'); // true
regex.test('00.0'); // true
regex.test('0.0'); // true
regex.test('12.34'); // true (test other digits than '0')

// first half malformed
regex.test('a0.00'); // non-digit in first half
regex.test('.00'); // missing first digit
regex.test('000.00'); // too many digits in first half

// period malformed
regex.test('0000'); // missing period
regex.test('00..00'); // extra period

// second half malformed
regex.test('00.a0'); // non-digit in second half
regex.test('00.'); // missing last digit
regex.test('00.000'); // too many digits in second half

答案 1 :(得分:1)

要匹配点两侧的1个或多个零,您可以使用+运算符。因为圆点具有特殊含义,所以你必须引用它。 0+\.0+应该做那个工作。

要匹配您可能使用的任何数字\d+\.\d+ ...

要将其限制为最多2位,请使用\d{1,2}\.\d{1,2}