JSLint中出现意外的'\ d'

时间:2012-11-03 10:19:34

标签: javascript regex jslint

一个小问题: 我正在尝试使我的代码JSLint无错误,但遇到了这个问题:

意外'\ d'。 (在两个正则表达式中)

hourduration = parseInt(activity.endTime.replace(":\d\d", ""), 10) - parseInt(activity.startTime.replace(":00", ""), 10);

minuteduration = (parseInt(activity.endTime.replace("(\d)?\d:", ""), 10) - parseInt(activity.startTime.replace(":00", ""), 10)) / 60;

我可以做些什么来改进我的正则表达式,以便jslint验证它?

谢谢!

解决方案:

hourduration = parseInt(activity.endTime.replace(/:\d\d/, ""), 10) - parseInt(activity.startTime.replace(":00", ""), 10);

minuteduration = (parseInt(activity.endTime.replace(/(\d)?\d:/, ""), 10) - parseInt(activity.startTime.replace(":00", ""), 10)) / 60;

1 个答案:

答案 0 :(得分:2)

JSLint希望您使用RegExp对象或/regex/'字符串',而不是普通字符串:

// JSLint error
foo.match(':\d\d');
foo.match(RegExp(':\\d\\d'));

// no error
foo.match(/:\d\d/);
foo.match(new RegExp(':\\d\\d'));

编辑:所有示例都有效,但最后2个是使用正则表达式的官方方式。