Javascript 验证HTML数字输入

Javascript 验证HTML数字输入,javascript,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

如何验证必须包含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>

功能检查(elem){
如果(!elem.value.match(/^\d?\d\。\d$/){
警报(“数据错误-使用dd.dd(d=数字)”格式);
}
}
但是它不允许任何超过99.99的东西

很抱歉,我需要添加更多详细信息来解释这一点

我需要接受1.00或10.00甚至1000.00

只是没有

1或10或2.0或20.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
const regex=/^[1-9]+\d*\.\d{2}$/g;
常量str=`1601.91`;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});

}
/^[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
const regex=/^[1-9]+\d*\.\d{2}$/g;
常量str=`1601.91`;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});

}
你确定
input maxlength=5
的长度已经是5个字符了,因此不能超过99.99吗?是的,对不起,我增加了长度,但没有结果你确定
input maxlength=5
的长度已经是5个字符了,因此不能超过99.99吗?是的,对不起,我增加了长度,但没有结果
/^\d*[123456789]+\.\d{2}$/g
在小数点左边有0位的情况下会很有用。
[123456789]+
-嗯?因此,您将不允许
10.00
,但将允许
11.00
?为什么
[123456789]
而不是
[1-9]
regex=/^[1-9]+0*\.\d{2}$/g
只允许0直接位于小数点左边(在类似
str=1601.19
的情况下会失败。请尝试类似
regex=/^\d*[1-9]+\d*.\d{2}$/g
的方法。不过,这将允许前导0。谢谢大家的帮助
/^\d*[123456789]+\.\d{2}$/g
在小数点左边有0位的情况下会很有帮助。
[123456789]+
-Huh?所以你不允许
10.00
而是允许
11.00
?为什么
[123456789]
而不是
[1-9]
regex=/^[1-9]+0*.\d{2}$/g;
只允许直接在小数点左边(在类似
str=1601.19
的情况下会失败。请尝试类似
regex=/^\d*[1-9]+\d*.\d{2}$/g
的操作。不过,这将允许使用前导0。谢谢大家的帮助