Я пытаюсь создать собственное правило проверки jquery, чтобы выполнить регулярное выражение для значения в текстовом поле. Вот правило:
$.validator.addMethod("validateRegExp", function (value, element, pattern) {
console.debug("pattern: " + pattern);
var regex = new RegExp(pattern);
var isMatch = regex.test(value);
console.debug("value: " + value);
console.debug("result: " + isMatch);
return isMatch;
});
А вот HTML:
<input type="text" class="{ "validateRegExp": "^\d{1,2}:\d{2}(\s)*(AM|am|PM|pm)$", messages: { "validateRegExp": "Invalid Time" } }" maxlength="8" value="8:00 AM" name="TuesdayStartTime" id="TuesdayStartTime" />
По какой-то причине, когда он вызывает пользовательский метод validateRegExp, атрибут pattern устанавливается на:
^ d {1,2}: d {2} (s) * (AM | AM | PM | пм) $
Как видите, обратные слеши были удалены. Я даже могу вставить 2 или 3 обратных слеша, куда каждый должен идти, и все же, когда он входит в этот метод, все обратные слеши отфильтровываются. Как мне заставить это работать?