#jquery #regex #jquery-validate
#jquery #регулярное выражение #jquery-validate
Вопрос:
Я пытаюсь использовать регулярное выражение, чтобы гарантировать, что пользователи не добавят никаких запрещенных символов Windows в имя создаваемой папки (да, я также проверяю на стороне сервера перед созданием папки), и я хотел бы использовать плагин Validate от jQuery (http://docs.jquery.com/Plugins/Validation /) для этого, но все примеры регулярных выражений, похоже, указывают мне на то, чтобы убедиться, что то, что вводит пользователь, СООТВЕТСТВУЕТ, а не НЕ СООТВЕТСТВУЕТ. Кто-нибудь может указать мне правильное направление относительно того, что я делаю неправильно? Спасибо!
Вот мой код jQuery (по иронии судьбы, он работает наоборот — если я ввожу один из запрещенных символов, все в порядке, но если я его удаляю, это запускает проверку):
$(document).ready(function() {
$.validator.addMethod(
"regex",
function(value, element) {
return this.optional(element) || /:|?|\|*|"|<|>|||%/g.test(value);
},
"Asserter Names Cannot Contain Certain Characters.");
$('#matterDetail').validate({
debug: true,
rules: {
"Asserter": {
required: true,
regex: true,
minlength: 2
}
}
});
});
Я получил правило регулярных выражений отсюда: http://RegExr.com?2rj55
Ответ №1:
Вы можете просто использовать!() чтобы отменить ваше правило…
return this.optional(element) || !(/:|?|\|*|"|<|>|||%/g.test(value));