Используйте регулярное выражение в плагине jQuery Validate, чтобы убедиться, что в имени папки нет запрещенных символов

#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));