正则表达式Javascript。为什么我的卷发背带坏了?

正则表达式Javascript。为什么我的卷发背带坏了?,javascript,regex,Javascript,Regex,我很困惑,为什么我的代码中似乎忽略了大括号?但是,如果我在控制台中运行该命令,它似乎可以正常工作 datetime: function(field) { var regEx = /^\d{1,2}$/; if (field.val().length > 0) { // This works in the console /^\d{1,2}$/.test("22"); console.log(regEx) // /^\dUNDEF$/ console.lo

我很困惑,为什么我的代码中似乎忽略了大括号?但是,如果我在控制台中运行该命令,它似乎可以正常工作

datetime: function(field) {
  var regEx = /^\d{1,2}$/;

  if (field.val().length > 0) {

    // This works in the console /^\d{1,2}$/.test("22");
    console.log(regEx) // /^\dUNDEF$/
    console.log(typeof regEx); // Object
    console.log(typeof field.val()); // String
    return regEx.test(field.val());
  } else {
    return true;
  }
}

多亏了弗里德里克·哈米迪,我脑子里的一个灯泡熄灭了

大括号返回UNDEF的原因是由于Java后端标记系统。我应该让这个Javascript远离它自己文件中的模板


谢谢Frédéric Hamidi:)

您要匹配的输入是什么?目前我只是想让它确认一两个数字!要理解为什么失败?日志中的
UNDEF
很奇怪。我怀疑模板/宏系统正在替换源代码中花括号内的标记。如果确实有大括号模板系统正在运行,请尝试此替代正则表达式:
/^\d\d?$/