2010-10-15 3 views
1

Я хочу, чтобы числовая проверка JavaScript для поля меток. Введенные знаки должны быть не равными 5, пользователь может ввести до 5 баллов не более. знаки могут быть в десятичной системе счисления, например 4,25 после десятичной должно быть 2 цифры может любой помочь мне ..числовые метки поля проверка

ответ

1

Самый простой способ, вероятно value.toString().match(/^[0-5](\.\d{1,2})?$/). Как правило, вы хотите избежать регулярных выражений, но это сохранит вам несколько других, более сложных шагов для проверки формата номера.

+0

@ Ответ Sachin Shanbhag - лучшая идея. – mway

1

Проверить этот код -

if(Number(str) < 0 || Number(str).toFixed(2) > 5) { 
    //Throw error 
} 

str, где ваша ценность будет подтверждена.

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); 
    } 
} 
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'); 
} 

--- ПРИМЕЧАНИЕ следующее! ---

Если вы имеете в виду, что только первые цифры (не включая знаков после запятой!) Может иметь MaxLength 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'); 
} 
Смежные вопросы