.match不是函数jquery

时间:2017-04-21 05:15:53

标签: javascript jquery datetime match

我在某个网站上有工作代码。我正在改变网站的设计和一些功能,所以当我复制粘贴Jquery时。它引发了我的错误。我确定了一些问题,但无法得到之前的开发人员在这里尝试做的事情:

if (dateFormat=='european'){
    dateofbirthString = /^([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9])([-])([1][0-2]|[0][1-9]|[1-9])([-])([1][9][0-9][0-9]|[2][0][0-1][0-9])$/;
}
if (dateFormat=='american'){    
    dateofbirthString = /^([1][0-2]|[0][1-9]|[1-9])([-])([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9])([-])([1][9][0-9][0-9]|[2][0][0-1][0-9])$/;
}

if (dob.match(dateofbirthString)){}

根据我的理解,他试图将其转换为选定的特定日期格式。

但是现在我在上遇到错误if(dob.match(dateofbirthString) .match不是函数。我已经尝试将值转换为字符串然后使用此代码,但其输出为空。

请帮助我使用它来使其正常工作。

2 个答案:

答案 0 :(得分:1)

你应该做

var dob = '11-11-1990';
dateofbirthString.test(dob); // true for america

而不是

var dob = '11-11-1990';
dob.match(dateofbirthString) // ["11-11-1990", "11", "-", "11", "-", "1990", index: 0, input: "11-11-1990"]
你的代码中的

dob应该是一个字符串。如果它根据正则表达式(dateofbirthString)无效,则返回null。如果dob是有效的日期格式,则返回如上所示的数组

答案 1 :(得分:-1)

 var   dateofbirthString = /^([1][0-2]|[0][1-9]|[1-9])([-])([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9])([-])([1][9][0-9][0-9]|[2][0][0-1][0-9])$/;

var dob = "07-14-1995"; //MM-dd-yyyy

console.log(dob.match(dateofbirthString)); 
 // match is found return the result as ["07-14-1995", "07", "-", "14", "-", "1995"] otherwise return null