0

ちょっとした質問: 私はコード 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;
4

1 に答える 1

2

JSLint/regex/では、通常の文字列ではなく、RegExp オブジェクトまたは「文字列」を使用する必要があります。

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

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

編集: すべての例は有効ですが、最後の 2 つは正規表現を使用する公式の方法です。

于 2012-11-03T10:23:33.750 に答える