我正在尝试获取它,以便如果输入到文本框中的值不是 0.0 到 4.9 之间的十进制数,小数点前后只有一位,则弹出警报消息,但无论我是什么数字都会弹出消息输入,我认为我的正则表达式有问题,但我无法弄清楚。
if ((textBox.value.search("/^[0-4]\\.[0-9]$/")) == -1) {
alert("Invalid Entry");
return false;
}
return false 在那里,因为如果数字无效,那么函数将退出。
我正在尝试获取它,以便如果输入到文本框中的值不是 0.0 到 4.9 之间的十进制数,小数点前后只有一位,则弹出警报消息,但无论我是什么数字都会弹出消息输入,我认为我的正则表达式有问题,但我无法弄清楚。
if ((textBox.value.search("/^[0-4]\\.[0-9]$/")) == -1) {
alert("Invalid Entry");
return false;
}
return false 在那里,因为如果数字无效,那么函数将退出。
您也可以在不使用 RegExp 的情况下执行此操作,方法是通过parseFloat将值解析为数字并通过isFinite检查结果。
// Parse the value as a float. If the value cannot be parsed,
// `parseFloat` will return NaN
var toFloat = parseFloat( textBox.value );
// Use `isFinite` to verify that parsing was successful. If it
// was, just check the range (i.e. between 0 and 4.9)
if ( isFinite( toFloat ) && toFloat >= 0 && toFloat <= 4.9 ) {
// Input is valid
} else {
// Input is invalid
}
希望有帮助。干杯!
它应该是:
if ((textBox.value.match(/^[0-4]\.[0-9]$/))) {
alert("Invalid Entry");
return false;
}
在这里,您对匹配的位置不感兴趣,而只对匹配的事实感兴趣,因此不必使用search
,match
就足够了。