验证HTML编号输入

时间:2017-06-20 02:22:19

标签: javascript

如何验证必须包含1.00或更高的字段?还必须包含2个小数点。

我找到了这个......

    <input pattern="\d?\d\.\d\d" maxlength=5 size=5 onchange="check(this)">
    <script>
    function check(elem) {
      if(!elem.value.match(/^\d?\d\.\d\d$/)) {
        alert('Error in data – use the format dd.dd (d = digit)');
      }
    }
    </script>

但它不允许超过99.99。

抱歉,我需要添加更多细节来解释这一点。

我需要接受1.00或10.00甚至1000.00

不是

1或10或2.0或20.0

它需要是一个整数和2位小数

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

/^[1-9]+\d*\.\d{2}$/g应该在哪里工作

^[1-9] : makes sure the non-decimal part is greater than 0.
\d*    : allows trailing zeroes as in 1000

&#13;
&#13;
const regex = /^[1-9]+\d*\.\d{2}$/g;
const str = `1601.91`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}
&#13;
&#13;
&#13;