Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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 - Fatal编程技术网

Javascript 将输入字段限制为一个小数点和两个小数点

Javascript 将输入字段限制为一个小数点和两个小数点,javascript,Javascript,我有一个限制为6个字符的输入字段。如何验证输入字段,以便用户不能输入超过一个小数点(即19..12),并且只能输入两位小数点(即19.123) 这是我的输入字段 <input type="text" name="amount" id="amount" maxlength="6" autocomplete="off"/><span class="paymentalert" style="color:red;"></span> 这是我的验证脚本 $(func

我有一个限制为6个字符的输入字段。如何验证输入字段,以便用户不能输入超过一个小数点(即19..12),并且只能输入两位小数点(即19.123)

这是我的输入字段

<input type="text" name="amount" id="amount" maxlength="6" autocomplete="off"/><span class="paymentalert" style="color:red;"></span>

这是我的验证脚本

$(function(){
$("#amount").keypress( function(e) {
    var chr = String.fromCharCode(e.which);
    if (".1234567890NOABC".indexOf(chr) < 0)
        return false;
});
});

$("#amount").blur(function() {
    var amount = parseFloat($(this).val());
    if (amount) {
        if (amount < 40 || amount > 200) {
            $("span.paymentalert").html("Your payment must be between £40 and £200");
        } else {
            $("span.paymentalert").html("");
        }
    } else {
        $("span.paymentalert").html("Your payment must be a number");
    }
});
$(函数(){
$(“#金额”)。按键(功能(e){
var chr=String.fromCharCode(e.which);
如果(“.1234567890NOABC”.indexOf(chr)<0)
返回false;
});
});
$(“#金额”).blur(函数(){
var amount=parseFloat($(this.val());
如果(金额){
如果(金额<40 | |金额>200){
$(“span.paymentalert”).html(“您的付款必须介于40英镑和200英镑之间”);
}否则{
$(“span.paymentalert”).html(“”);
}
}否则{
$(“span.paymentalert”).html(“您的付款必须是数字”);
}
});
约拿

这应该是:

var ok = /^\d*\.?\d{0,2}$/.test(input);
(如果我正确理解您不希望圆点后的数字超过2位)

因此,守则将是:

$("#amount").blur(function() {
    var input = $(this).val();
    if (/^\d*\.?\d{0,2}$/.test(input)) {
        var amount = parseFloat(input);
        if (amount < 40 || amount > 200) {
            $("span.paymentalert").html("Your payment must be between £40 and £200");
        } else {
            $("span.paymentalert").html("");
        }
    } else {
        $("span.paymentalert").html("Your payment must be a number");
    }
});
$(“#金额”).blur(函数(){
var输入=$(this.val();
if(/^\d*\.?\d{0,2}$/.test(输入)){
var金额=浮动(输入);
如果(金额<40 | |金额>200){
$(“span.paymentalert”).html(“您的付款必须介于40英镑和200英镑之间”);
}否则{
$(“span.paymentalert”).html(“”);
}
}否则{
$(“span.paymentalert”).html(“您的付款必须是数字”);
}
});
这应该可以:

var ok = /^\d*\.?\d{0,2}$/.test(input);
(如果我正确理解您不希望圆点后的数字超过2位)

因此,守则将是:

$("#amount").blur(function() {
    var input = $(this).val();
    if (/^\d*\.?\d{0,2}$/.test(input)) {
        var amount = parseFloat(input);
        if (amount < 40 || amount > 200) {
            $("span.paymentalert").html("Your payment must be between £40 and £200");
        } else {
            $("span.paymentalert").html("");
        }
    } else {
        $("span.paymentalert").html("Your payment must be a number");
    }
});
$(“#金额”).blur(函数(){
var输入=$(this.val();
if(/^\d*\.?\d{0,2}$/.test(输入)){
var金额=浮动(输入);
如果(金额<40 | |金额>200){
$(“span.paymentalert”).html(“您的付款必须介于40英镑和200英镑之间”);
}否则{
$(“span.paymentalert”).html(“”);
}
}否则{
$(“span.paymentalert”).html(“您的付款必须是数字”);
}
});

如果您使用for jQuery,将更容易。

如果您使用for jQuery,将更容易。

假设:

  • 小数点后必须有2位数字,并且
  • 小数点前必须至少有2位,但不得超过3位
  • 您将使用以下代码来匹配它:

    var value = $(this).val;
    value.match(/^\d{2,3}(\.\d{2})?$/i);
    
    假设:

  • 小数点后必须有2位数字,并且
  • 小数点前必须至少有2位,但不得超过3位
  • 您将使用以下代码来匹配它:

    var value = $(this).val;
    value.match(/^\d{2,3}(\.\d{2})?$/i);
    

    两个问题:(1)您是否希望这样,如果它们有一个小数点,则后面必须有两位数字?(2) 从您的错误消息中,小数点前必须至少有2位,但不得超过3位,对吗?是否有不使用的原因?@talemyn 1)是2)正确。好的。答复如下:)@matt ball我想保持它的简单性,并将javascript放在一个函数中。两个问题:(1)你想让它这样,如果它们有一个小数点,后面必须有两位数字吗?(2) 从您的错误消息中,小数点前必须至少有2位,但不得超过3位,对吗?是否有不使用的原因?@talemyn 1)是2)正确。好的。答复如下:)@matt ball我想保持它的简单性,并将javascript放在一个函数中。我将把它放在脚本中的什么位置?我将把它放在脚本中的什么位置?