我想要标记字段的数字javascript验证。 输入的标记应为5个,表示用户最多可输入5个不超过5个标记的标记。 标记可以是小数,如4.25 小数点后应该有2位数可以帮助我..
答案 0 :(得分:1)
最简单的方法可能是value.toString().match(/^[0-5](\.\d{1,2})?$/)
。通常,您希望避免使用正则表达式,但这将为您节省一些其他详尽的步骤来验证数字的格式。
答案 1 :(得分:1)
检查此代码 -
if( Number(str) < 0 || Number(str).toFixed(2) > 5 ) {
//Throw error
}
其中str
是您要验证的值。
答案 2 :(得分:0)
Mark: <input type="text" id="mark" onBlur="validateMark()">
function validateMark() {
var val = document.getElementById('mark').value;
if (!val.match(/^[0-5](\.\d{1,2})?$/)) {
alert("Invalid mark: " + val);
}
}
答案 3 :(得分:0)
输入字段长度
您可以设置输入字段的最大长度,如下所示:
<input type="text" maxlength="5" placeholder="12345" />
或者,如果您想要最多5个字符,1个分隔符和2个小数:
<input type="text" maxlength="8" placeholder="12345.12" />
javascript验证:
快速解决方案(允许使用逗号+点,maxlength = 5)
var value = "15,5";
if(!isNaN(parseFloat(value)) && value.length <= 5) {
console.log('valid, continue');
}
如果您只想允许点,请添加额外的'isFinite'检查
var value = "145.5";
if(!isNaN(parseFloat(value)) && isFinite(value) && value.length <= 5) {
console.log('valid, continue');
}
---请注意以下内容! --- 强>
如果您的意思是只有第一个数字(不包括小数!)的最大长度为5,那么请忘掉上面的内容。
首先要检查输入是否为数字,然后强制使用两位数字。 最后你可以检查长度是低于还是等于8(5位+ 1分隔符+ 2小数= 8)
var value = "12345.58852"; // Input field (string)
if(!isNaN(parseFloat(value)) && isFinite(value) && parseFloat(value).toFixed(2).length <= 8) {
console.log('valid, continue');
}
为了使其完整,这里有一个检查变量是否为数字的函数
(测试: http://jsfiddle.net/web_nfo/CBKwA/ )
function isNumeric(value, strict)
{
var strict = (typeof strict == 'undefined' ? false : (strict == true ? true : false));
if(strict && typeof value != 'number') {
return false;
}
return !isNaN(parseFloat(value)) && isFinite(value);
}
如果你包含这个功能,你可以像这样重写最后一次检查:
if(isNumeric(value) && parseFloat(value).toFixed(2).length <= 8) {
console.log('valid, continue');
}