Javascript 正则表达式接近我需要的。

Javascript 正则表达式接近我需要的。,javascript,regex,Javascript,Regex,我对正则表达式没有太多经验。我有一个要用JavaScript验证的文本框 ^\d{0,5}.\d{0,4}$ 这是非常接近我需要的,除了这将允许在小数点前6位,如果小数点后没有任何数字。小数点前5位和小数点后4位应该是最大值。我希望允许任何低于该值的内容 例:123456在不应该的情况下有效。 123456.1无效,不应为 js功能的一部分: if (document.getElementById("txtPrice").value !== "") { var RegEx = /^(

我对正则表达式没有太多经验。我有一个要用JavaScript验证的文本框

^\d{0,5}.\d{0,4}$

这是非常接近我需要的,除了这将允许在小数点前6位,如果小数点后没有任何数字。小数点前5位和小数点后4位应该是最大值。我希望允许任何低于该值的内容

例:123456在不应该的情况下有效。 123456.1无效,不应为

js功能的一部分:

 if (document.getElementById("txtPrice").value !== "") {
     var RegEx = /^(\d{0,5}.\d{0,4})?$/;

     if (RegEx.test(document.getElementById("txtPrice").value) == false) {
     alert("Contract Price is entered as an invalid format.");

     return false;
     }
 }
使用\。一次匹配任意字符,\。匹配点字符:

^(\d{0,5}\.\d{0,4})$
如果不想强制使用小数点,请将最后一部分括在非捕获组中:

^(\d{0,5}(?:\.\d{0,4})?)$

您需要回溯javascript没有的内容。也许分割字符串会更容易些。你需要逃跑。在代码中使用\反斜杠,否则它将被视为任何字符,这就是123456有效的原因。正是我需要的。