Javascript 验证工资输入jQuery

Javascript 验证工资输入jQuery,javascript,jquery,html,Javascript,Jquery,Html,我试图验证输入值必须是1.400,00和12.000,00。 如果输入具有正确的值,则应将禁用的类从保持禁用的else中删除 我试着这样做,但没有成功:( $(“#ex2”)。在(“键控”,函数()上{ var valid=/^\d{1,6}(?:\.\d{0,2})$/.test(此.value), val=该值; 如果(有效){ log(“无效输入!”); this.value=val.substring(0,val.length-1); $(“#checkSalary1”).remove

我试图验证输入值必须是1.400,00和12.000,00。 如果输入具有正确的值,则应将禁用的类从保持禁用的else中删除

我试着这样做,但没有成功:(


$(“#ex2”)。在(“键控”,函数()上{
var valid=/^\d{1,6}(?:\.\d{0,2})$/.test(此.value),
val=该值;
如果(有效){
log(“无效输入!”);
this.value=val.substring(0,val.length-1);
$(“#checkSalary1”).removeClass(“禁用”);
}
否则{
$(“#checkSalary1”).addClass(“禁用”);
}
});
有人能帮忙吗?怎样才能达到这个条件


提前感谢

您的正则表达式已经过时了,类似这样的东西会让您更接近:

^\d{1,2}.\d{3}、\d{2}$

它寻找:

  • 1-2位
  • 文字
  • 3位数
  • 文字
  • 2位数
您可能希望对此进行增强,使十进制部分成为可选部分


从这里开始,您需要实际地将字符串解析为一个数字,以检查它是否在有效的数字范围内(例如,
95.000,00
将通过正则表达式检查,但不在范围内检查。

数字输入值是一个…
数字,因此您可以只使用数字比较,不需要
RegExp
。此外,如果使用鼠标增加或减少其值,
keyup
事件将不会触发

这里有一个片段,可以连续检查薪资输入值,根据需要启用或禁用按钮,并显示有关输入值有效性的消息。为了让您的生活更轻松,对于
[type=number]
-输入,您还可以通过这种方式设置最小值和最大值(在片段
checkValue
方法中使用)

(()=>{
const inputElement=document.querySelector(“#ex2”);
const report=document.querySelector(“报告”);
const bttn=document.querySelector(“按钮”);
const getAction=cando=>cando?“removeAttribute”:“setAttribute”;
常量checkVal=val=>val
&&val>=+inputElement.getAttribute(“最小值”)

&&val您的正则表达式看起来与您的要求完全不同。它查找1-6个数字,后跟一个
,后跟0-2个其他数字。还有另一个步骤-一旦它看起来像一个有效数字,您需要将其解析为一个数字,并检查其是否在有效范围内-单独使用正则表达式更难。将您的正则表达式放入并读取它的作用和范围加上你的一些值,你会发现它并不接近
<input id="ex2" class="salary" type="number" placeholder="1.400,00 - 12.000,00" name="salaryRange2"/>

<a href="#" id="checkSalary1" class="btn next disabled">Next Step</a>

$("#ex2").on("keyup", function(){
    var valid = /^\d{1,6}(?:\.\d{0,2})?$/.test(this.value),
        val = this.value;

    if(valid){
        console.log("Invalid input!");
        this.value = val.substring(0, val.length - 1);
        $("#checkSalary1").removeClass("disabled");
    }
    else{
        $("#checkSalary1").addClass("disabled");
    }
});