Javascript 验证HTML数字输入
如何验证必须包含1.00或更大的字段?还必须包含2个小数点 我找到了这个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
<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。谢谢大家的帮助