我有一个textarea,每个新行只能接受整数和十进制数。 我需要一个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
答案 0 :(得分:0)
参见this JSFiddle:
class Inst[T] {
def foo(x: Any)(implicit ev: T <:< String) = scala.util.Try {
ev(as(x)).reverse
}.isSuccess
}
new Inst[String].foo(3) // false!
的JavaScript
/^\d+(?:\.\d+)?$/gm
HTML
$("#input").on("input", function(){
var validateThis = $(this).val();
var validateCount = validateThis.split("\n").length;
var result = validateThis.match(/^\d+(?:\.\d+)?$/gm);
if(result && result.length == validateCount){
$("#result").text("Valid input! :)");
} else{
$("#result").text("Invalid input! :(");
}
});
答案 1 :(得分:0)
那么我们可以在RegeEx中包含\ n或\ r \ n吗?
是的,我们可以。这是一个表达式,用于测试整个文本是否由带数字的行组成:
^\d+(\.\d+)?(\n\d+(\.\d+)?)*\n?$
^
... $
- 整篇文字必须匹配。\d+(\.\d+)?
- 至少一个数字,可选地后跟一个句号和至少一个数字(\n…)*
- 后跟任意数字(包括零):换行符...... \n?
- 最后允许换行(如果您愿意)。