Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于验证文本区域中的整数和小数的正则表达式_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 用于验证文本区域中的整数和小数的正则表达式

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个十进制值时,此正则

我有一个文本区,在每一行上只能接受整数和小数。 我需要一个JQuery正则表达式,它将在焦点输出时验证输入。因此,基本上每行上的值应该是整数或小数

例:

有效场景:

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?
    -允许在末尾换行(如果需要)

似乎适用于给定场景。这不接受新行字符,因此抛出错误。@Batman啊,错过了问题的这一部分。让我看看我是否可以调整它。@Batman你检查过上面的链接吗,Arg0n,使用
^\d+(?:\。\d+)$
来取消捕获groups@Tushar是否有任何标志强制其检查所有内容是否有效?
^\d+(\.\d+)?(\n\d+(\.\d+)?)*\n?$