gpt4 book ai didi

javascript - jQuery正则表达式限制用户输入整数和 float 值

转载 作者:行者123 更新时间:2023-12-03 05:22:45 26 4
gpt4 key购买 nike

我有两个文本框(输入字段),如下所示:

 <input type="text" class="txtmin" placeholder="Minimum price">

<input type="text" class="txtmax" placeholder="Maximum price">

我正在尝试这样的方法来阻止用户输入以下值:

  1. 如果用户未在这两个值中输入任何内容,则可以继续。

  2. 如果用户在 txtmin 文本框中输入了某些内容,但没有在 txt max 中输入任何内容,则仅验证 txtmin

  3. 与 2 类似,但反之亦然

  4. 2 和 3 验证基于以下基础进行:

    • 如果用户输入整数或 float 以外的任何内容,则会显示错误。

例如,当我输入:1 或 2.50 或 1.00 时,这是可以的...

不允许使用含有逗号的数字。

所以我尝试了如下:

$(".btnGo").click(function () {
var r = new RegExp("/^[+-]?\d+(\.\d+)?$/");
var min = $('.txtmin').val();
var max =$('.txtmax').val();
if ($('.txtSearch').val() == "") {
ShowMessage("All fields are required");
return;
} else if ($('.txtmin').val() != "") {
if (!r.test(min)) {
ShowMessage("Entry only number for minimum price!");
return;
}
}
else {
PostAndUpdate($('.txtSearch').val(), $('input[name=type]:checked').val(), $('input[name=shipping]:checked').val(), $('input[name=condition]:checked').val(), $('.txtmin').val(), $('.txtmax').val());
}
});

但是例如,当我不将 txtmin 值留空时,我输入:

1.25 <<<

由于某种原因我仍然收到错误???

Entry only number for minimum price

我在这里做错了什么?

最佳答案

从正则表达式中取出引号。

var r = new RegExp(/^[+-]?\d+(\.\d+)?$/);

后续:您可以声明由 /.../ 或引号分隔的正则表达式,但不能同时声明两者。如果使用引号,则需要遵循正常的 javascript 转义规则并使用双反斜杠。如果使用斜杠分隔,您也不需要使用new RegExp。这些都是有效且等效的。

var r = new RegExp(/^[+-]?\d+(\.\d+)?$/);
var r = new RegExp("^[+-]?\\d+(\\.\\d+)?$");
var r = /^[+-]?\d+(\.\d+)?$/;

不,这不允许数字带有逗号。

关于javascript - jQuery正则表达式限制用户输入整数和 float 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41306845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com