一个小问题: 我正在尝试使我的代码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;
答案 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个是使用正则表达式的官方方式。