Javascript 用于验证文本区域中的整数和小数的正则表达式
我有一个文本区,在每一行上只能接受整数和小数。 我需要一个JQuery正则表达式,它将在焦点输出时验证输入。因此,基本上每行上的值应该是整数或小数 例: 有效场景:Javascript 用于验证文本区域中的整数和小数的正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我有一个文本区,在每一行上只能接受整数和小数。 我需要一个JQuery正则表达式,它将在焦点输出时验证输入。因此,基本上每行上的值应该是整数或小数 例: 有效场景: 1 51425.125 2552 600000 1.51425 3.65 无效场景: .123 123 12356 1213.56.25 234(小数点后的空格) 我尝试过各种正则表达式组合,但似乎没有一种效果完美: \b\s([-+]?(\d+\.\d+\\d+\.\d*)($|[^+-.])) 当有2个十进制值时,此正则
1
51425.125
2552
600000
1.51425
3.65
无效场景:
.123
123
12356
1213.56.25
234(小数点后的空格)
我尝试过各种正则表达式组合,但似乎没有一种效果完美:
\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)
此正则表达式不允许用户输入多行值
浏览了几个链接,但没有一个对我有效:参见JSFIDLE:
/^\d+(?:\.\d+)?$/gm
JavaScript
$("#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! :(");
}
});
HTML
那么,我们可以在RegeEx中包含\n或\r\n吗
是的,我们可以。下面是一个表达式,用于测试整个文本是否由带数字的行组成:
^\d+(\.\d+)?(\n\d+(\.\d+)?)*\n?$
…^
-整个文本必须匹配$
-至少一位数字,可选后跟句点和至少一位数字\d+(\.\d+)
-后跟任何数字(包括零):换行符,带(\n..)*
-允许在末尾换行(如果需要)\n?
^\d+(?:\。\d+)$
来取消捕获groups@Tushar是否有任何标志强制其检查所有内容是否有效?
^\d+(\.\d+)?(\n\d+(\.\d+)?)*\n?$