验证jquery中的负数,带有一个小数位

时间:2012-06-15 11:27:47

标签: javascript jquery validation jquery-validate

我想以下列方式使用jauery验证文本字段:

1。文本字段仅占用0-9,只有一个小数位;

2。如果金额输入不是负数,则将负数符号放在     请求输入数字!

$('[name="pm"]').keyup(function() {

    //?

 });

4 个答案:

答案 0 :(得分:6)

您可以通过regular expressionString#match验证字符串:

if (this.value.match(/^-?\d+(?:\.\d){0,1}$/)) {
    // It's valid
}

或者更多jQuery-ish(上面的内容不能可靠地支持textarea,只有input):

if ($(this).val().match(/^-?\d+(?:\.\d){0,1}$/)) {
    // It's valid
}

(例如,this.value => $(this).val()。)

打破正则表达式:

  • ^ - 匹配字符串开头
  • -? - 一个可选的-字符
  • \d+ - 一个或多个数字(0-9)
  • (?:...) - 非捕获分组,包含:
    • \.\d - 最多一个.后跟一位数字
  • {0,1} - 允许非捕获分组为零或一次
  • $ - 匹配字符串结尾

请注意,上述内容拒绝了-.1。如果你想接受它,它会变得更复杂,但上面的链接应该有所帮助。

Gratuitous live example | source

答案 1 :(得分:2)

指定解决方案的安排和补充:

来自@Some_Coder回答

1)首先这样做

http://www.texotela.co.uk/code/jquery/numeric/
来自playmaker的

修改

$('[name="pm"]').keyup(function() {

   if($(this).val().indexOf('-') != 0){ 
      var val = $(this).val();
      $(this).val("-" + val);
   }


if ($(this).val() == '-') {
            $(this).val('');
        }
});

你会得到渴望的结果!

答案 2 :(得分:1)

试试这段代码。

$('[name="pm"]').keyup(function() {
   if($(this).val().indexOf('-') != 0){ 
      var val = $(this).val();
      $(this).val("-" + val);
   }
});

如果它不起作用,请将其替换为$('[name =“pm”]')

答案 3 :(得分:0)

如果你使用jQuery,那么你可以使用这个插件。

http://www.texotela.co.uk/code/jquery/numeric/