2014-09-10 4 views
-3

Я работаю со следующим кодом, и я хочу выполнить проверку длины valueofzip. Когда я установил valueofzip = 08820, я хочу, чтобы это не было под следующим условием, означало, что оно идет в else блок. Как я могу это сделать?проверить длину строки начинаются с 0?

var valueofzip = 08820; 
if (isNaN(valueofzip) || valueofzip.toString().length < 5 || || valueofzip > 99999) { 
    e.preventDefault(); 
    showClientError("Entered Zipcode is invalid, Please input a valid 5 digit number"); 
    $('#zip').addClass("input-validation-error"); 
    isvalid = false; 
} 
else 
{ 
    alert("valid"); 
} 
+0

Существует также двойной '||' в, если условия – jasonscript

ответ

2

Определите свой почтовый индекс как строку, а не числовое значение. Затем с помощью простого регулярного выражения, чтобы проверить, что у вас есть ровно пять цифр:

var valueofzip = "08820"; 
var pattern = /^\d{5}$/; 
if (pattern.test(valueofzip)) { 
    alert("valid"); 
} else { 
    . . . 
} 

Большая проблема с использованием чисел вы Обнаружен: ведущий ноль не делать то, что вы хотите. В лучшем случае он теряется. В худшем случае он интерпретируется как восьмеричный литерал (теперь он устарел).

0

Синтаксическая ошибка: есть дублируется || между «< 5» и «> 99999».

Это не пойдет на другое заявление с valueofzip.toString(). Длина равна 4.

Вы можете видеть, что легко в консоли (наиболее распространенный браузер предоставляет инструменты для разработчиков, чтобы помочь вам отладки кода, нажмите F12 для его запуска).

0

Ваш valueofzip переменная не будет 08820, его ИНТ, число, то оно будет стирают первый 0, вызывают числа не начинаются с 0, как это .. valueofzip на самом деле 8820. Относитесь к нему, как к веревке.

Вместо isNan, убедитесь, что var содержит только цифры, это можно сделать с помощью простого регулярного выражения, например: /^\d+$/.test(valueofzip).
Таким образом, вы узнаете, что строка - это только числа, а длина останется как следует, длиной 5 символов.
Если вы хотите, чтобы держать его в пределах 00000 => 99999, просто проверить, так что длина составляет всего 5 символов: valueofzip.length === 5

Кроме того, удалить дубликаты || в условии if, это вызовет ошибку.

0

Если вы хотите, чтобы удалить начальные нули и проверки условия, вот код

var retStr = '';  
function removeStartingZeros(str){  
    if(str.indexOf(0) == '0'){  
     str = str.replace(0,'').trim();  
     removeStartingZeros(str); 
    }  
    else retStr=str;  
    return retStr;   
}  
var valueofzip = "000000000000000008820";    
valueofzip = removeStartingZeros('000000000000000008820');  
// here 'valueofzip' will be equal to '8820' 
if(/^\d+$/.test(valueofzip) && valueofzip.length > 4){  
    // your code for ...if valid string  
} 
else{ 
    // your code for....if invalid string 
} 
Смежные вопросы