Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 文本框一个仅带数字,另一个在jquery中带逗号_Javascript_Jquery - Fatal编程技术网

Javascript 文本框一个仅带数字,另一个在jquery中带逗号

Javascript 文本框一个仅带数字,另一个在jquery中带逗号,javascript,jquery,Javascript,Jquery,我有两个文本框的形式。一个只验证数字,另一个验证数字和逗号 仅第一个案例编号。 function(textBoxObject) { var that = $(this), val = that.val(); if (val === "" || isNaN(val)) { that.addClass("error"); } else { that.removeClass("error"); } } 第二个案例编号和逗号。 funct

我有两个文本框的形式。一个只验证数字,另一个验证数字和逗号

仅第一个案例编号。

function(textBoxObject) {
    var that = $(this),
    val = that.val();

    if (val === "" || isNaN(val)) {
      that.addClass("error");
    } else {
     that.removeClass("error");
    }
}
第二个案例编号和逗号。

function(textBoxObject) {
    var that = $(this),
    val = that.val();

    if (val === "" || isNaN(val)) {
      that.addClass("error");
    } else {
     that.removeClass("error");
    }
}
如何处理另一个带有数字和逗号的文本框?是否可以在第一个函数本身中添加逻辑?

您可以使用.indexOf()方法

类似于

if(val.indexOf(',') === -1) {
    ...your code here...
}

如果(val.match(/^(\d,?)*$/g))

它将允许空字符串、数字和用逗号分隔的数字。不过,它允许在字符串的末尾使用逗号

所以,
1,2,3,4
1234
1234,
都通过了,但是
,12,34
foo
都会失败。

看看这个,我不知道你想要什么样的行为,但你可以尝试类似的方法

JS

$(function(){
  function validateInput() {
      var that = $(this),
      val = that.val();
      if (that.attr('data-type') === 'number') {
        if (val === '' || isNaN(val)) that.addClass('error');
        else that.removeClass('error');
      }
      else {
        if (val.indexOf(',') === -1) that.addClass('error');
        else that.removeClass('error');
      }
  }

  $('input').change(validateInput);
});
HTML

<div>
  <label> Number
    <input type="text" data-type="number"/>
  </label>
</div>

<div>
  <label> Comma
    <input type="text"/>
  </label>
</div>

数
逗号

我假设您将12,34视为非法,将1234视为合法。那么这就是答案

以及正则表达式:

^       means start
\d{0,3} means 0-3 digits
(?:     means non-capturing group 
,
\d{3}   means 3 digits
)
*       means repeat for 0 or more times
$       means end

您可能需要查看[此答案][1][1]:非常感谢您的帮助。