1

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

1.文本字段只取0-9,只有一位小数;和

2.如果输入的金额不是负数,在输入的数字前加负号!

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

    //?

 });
4

4 回答 4

6

您可以通过正则表达式验证字符串,并且String#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. 如果您想接受它,它会变得更加复杂,但上面的链接应该会有所帮助。

无偿的活生生的例子| 来源

于 2012-06-15T11:31:43.577 回答
2

指定溶液的排列和添加:

来自@Some_Coder 答案

1)首先这样做

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

来自组织者的修改回答

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

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


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

你会得到想要的结果!

于 2012-06-15T17:47:35.877 回答
1

试试这段代码。

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

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

于 2012-06-15T12:06:32.017 回答
0

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

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

于 2012-06-15T11:56:36.927 回答