正则表达式不适用于数字验证

时间:2014-04-14 04:04:34

标签: javascript regex

我有一个允许17位数字的validatin,否则就会出错,我写了一些代码,但它不起作用。这是我的代码。

  function validateRedeemPin(){
        var pin = document.getElementById('epayPinNumber').value;  
        var pattern = /^\d{17}$/;  
        var validPin = pin.match(pattern);  
        if(!validPin){ 
        alert("Please enter a valid 17 digit PIN number to redeem.");
        return false'
       }
 }    

这是小提琴Jsfiddle

4 个答案:

答案 0 :(得分:2)

您的return false声明后有一个引号。此外,如果您要在html标记中引用它,则应该已经定义了您的函数,因此您应该将它包装在head标记中(j​​sfiddle中的左侧面板):请参阅updated jsfiddle

答案 1 :(得分:1)

您的代码最后一行不受欢迎的单引号返回false' 。这就是为什么代码不起作用的原因。

检查此 Demo jsFiddle

的jQuery

function validateRedeemPin(){    
        var pin = document.getElementById('PinNumber').value;  
        var pattern = /^\d{17}$/;  
        var validPin = pin.match(pattern);  
        if(!validPin){ 
        alert("Please enter a valid 17 digit PIN number to redeem.");
        return false
       }
 }   

答案 2 :(得分:1)

除了上面提到的拼写错误之外,输入必须以表格形式进行汇总,然后进行处理。

以下是使用JS进行表单验证的示例。

http://www.thesitewizard.com/archive/validation.shtml

祝你好运

:)

答案 3 :(得分:1)

您的代码有两个错误: - 你错过了输入的结束标记。

<input id="PinNumber" name="PinNumber" type="text">
now adding end tag of input.
<input id="PinNumber" name="PinNumber" type="text"/>

并在“return false”语句结束时删除单个撇号(')。

return false' //this will not parse correctly. so remove
return false;

你的jsFIddle错误: - 将“onLoad”条件更改为“No wrap-in head”选项。所以此功能将添加到标题部分。或者使用以下语法定义函数。

validateRedeemPin = function() {
  //code goes here...
}