这个jQuery验证码有什么问题?regexp.exec(值)

Ian*_*ugh 1 javascript regex jquery

值将是任何值,匹配为null.这一点的意思是拆分像"1991-12-01"这样的字符串,并确保字符串的所有部分都是有效的日期.

dateISO: function(value, element) {
    if (this.optional(element)) return true;
    var regexp = new RegExp('^\d{4}[\/-](\d{1,2})[\/-](\d{1,2})$');
    var matches = regexp.exec(value);
    alert(matches);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Jef*_*eff 7

你给出的表达式是一个字符串,因此需要转义:

var regexp = new RegExp('^\\d{4}[\\/-](\\d{1,2})[\\/-](\\d{1,2})$');
Run Code Online (Sandbox Code Playgroud)

或者,您可以执行perl样式的表达式,但需要转义斜杠:

var regexp = /^\d{4}[\\/-](\d{1,2})[\\/-](\d{1,2})$/;
Run Code Online (Sandbox Code Playgroud)

(perl风格的正则表达式返回一个RegExp对象)