2015-01-01 3 views
-1
$("#pincode").blur(function() { 
    var pincode = $("#pincode").val().trim(); 
    var pattern = /^[0-9]{6}$/; 
    if (pincode != "" && !IsPatternFormate(pincode, pattern)) { 
     $("#pincode").addClass('invalidValidation'); 
     document.getElementById('pincode') 
       .setCustomValidity('please enter data in proper formate'); 
    } 
}); 

var IsPatternFormate = function (value, pattern) {  
    var match = pattern.test($(value)); 
    console.log(match); 
} 

Я не знаю, почему, матч всегда возвращает мне ложное значение.regex test alwayes возвращает false

+1

Почему вы передаете "значение" в '$()'? Это не имеет никакого смысла; это должно быть просто 'pattern.test (value);' И вам нужно 'return' от функции. – Pointy

+3

Ваша функция ничего не возвращает, а undefined - falsy –

+0

, когда вы вызываете '$ (что-то)' вы получаете объект, похожий на объект jQuery, поэтому, когда вы передаете его объекту функции 'test', которому нужен строковый параметр, действительно передается что-то вроде' '[ объект Object] "' ​​поэтому он всегда возвращает _false_ для вашего шаблона – Grundy

ответ

0
var IsPatternFormate = function (value, pattern) {  
     if(pattern.test(value)){ 
     return true; 
     }else{ 
     false; 
     } 

    } 

Меняйте функция IsPatternFormate

+2

'test' функция уже возвращает boolean, поэтому' return pattern.test (value) 'достаточно – Grundy

+1

могу ли я писать как var IsPatternFormate = function (value, pattern) { return pattern.test (значение); } –

+0

@radhey_mishra да, что было бы точнее –

Смежные вопросы