【发布时间】:2015-12-10 14:36:18
【问题描述】:
我有一个文本区域,它在每一行上只能接受整数和小数。 我需要一个 JQuery 正则表达式来验证 Focus Out 上的输入。所以基本上每一行的值应该是整数或小数。
例如:
有效场景:
1
51425.125
2552
600000
1.51425
3.65
无效场景:
.123
123.
123. 56
1213.56.25
234. (spaces after the decimal point)
我尝试了各种正则表达式组合,但似乎没有一个能完美运行:
\b\s([-+]?(\d+|\.\d+|\d+\.\d*))($|[^+-.])
当有 2 个十进制值时,此正则表达式会失败。
\b[0-9\s]*(\.*[0-9\s]*)*
这个正则表达式允许值之间和之后的空间。
\b(?:^|\s)(?=.)((?:0|(?:[1-9](?:\d*|\d{0,2}(?:,\d{3})*)))?(?:\.\d*[1-9])?)(?!\S)
此正则表达式不允许用户输入多行值。
浏览了几个链接,但似乎没有一个对我有用:
Regular Expression for Decimal or Blank
Regular expression - number with spaces and decimal comma
Decimal number regular expression, where digit after decimal is optional
http://regexone.com/problem/matching_decimal_numbers
【问题讨论】:
标签: javascript jquery regex