2015-01-01 26 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); 
} 

我不知道为什么,匹配总是给我返回假值。正则表达式测试alwayes返回false

+1

你为什么要通过 “价值”'$()'?这绝对没有意义;它应该是'pattern.test(value);'并且你需要函数的'return'。 – Pointy

+3

当你调用'$(something)'得到类似jQuery数组的对象时,你的函数什么也没有返回并且undefined是虚假的 –

+0

,所以当你将对象传递给需要字符串参数的'test'函数时,确实会传递类似''[对象对象]''所以它总是返回_false_为你的模式 – Grundy

回答

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

    } 

更改IsPatternFormate功能

+2

'测试'函数已经返回布尔值,所以'返回pattern.test(值)'是足够的 – Grundy

+1

我可以写为var IsPatternFormate = function(value,pattern){ return pattern.test(value); } –

+0

@radhey_mishra是的那会更精确 –

相关问题