我想知道正则表达式的样子:
答案 0 :(得分:39)
只有整数:
/^\d+$/
# explanation
\d match a digit
+ one or more times
最多2位小数的数字:
/^\d+(?:\.\d{1,2})?$/
# explanation
\d match a digit...
+ one or more times
( begin group...
?: but do not capture anything
\. match literal dot
\d match a digit...
{1,2} one or two times
) end group
? make the entire group optional
注意:
^
和$
是字符串锚点的开头和结尾。没有这些,它将在字符串中的任何位置查找匹配项。因此/\d+/
匹配'398501'
,但它也匹配'abc123'
。锚点确保整个字符串与给定的模式匹配。-?
之前添加\d
。同样,?
表示“零次或一次”。var rx = new RegExp(/^\d+(?:\.\d{1,2})?$/);
console.log(rx.test('abc')); // false
console.log(rx.test('309')); // true
console.log(rx.test('30.9')); // true
console.log(rx.test('30.85')); // true
console.log(rx.test('30.8573')); // false
答案 1 :(得分:5)
予。 [1-9][0-9]*
如果数字应大于零(任何一系列以非零数字开头的数字)。如果它应该为零或更多:(0|[1-9][0-9]*)
(零或非零数字)。如果它可以是负数:(0|-?[1-9][0-9]*)
(零或非零数字,可以在它之前有一个减号。)
II。像我这样的正则表达式后跟:(\.[0-9]{1,2})?
表示,可选择一个点后跟一个或两个数字。
答案 2 :(得分:2)
仅限整数
/\d+/
一位或两位小数:
/\d(\.\d{1,2})?/