我想创建一个验证以下所有条件的正则表达式。只允许数字[0-9]值。
答案 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}
。