Проверка JQuery - шаблонное правило не работает, а также приводит к тому, что другие правила не работают - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть следующее шаблонное правило Regex для входных данных HTML-формы, которые я хочу проверить. Предполагается, что правило шаблона следует шаблону для пути AWS S3 (например, s3://bucket/prefix/directory/). Но по какой-то причине, как только я добавил это шаблонное правило, оно, как и все другие правила, перестало работать.

JQuery:

$(document).ready(function () {

    $('#regForm').validate({ // initialize the plugin
        rules: {
            stack_name: {
                required: true,
                minlength: 4,
                letterswithbasicpunc: true
            },
            resource_cfn_tmpl_deploy_bucket: {
                required: true
            },
            gpce_ssh_key_pair: {
                required: true
            },
            start_point: {
                required: true
            },
            qc: {
                required: false
            },
            input_uri: {
                required: true,
                pattern: /^s3://([^/]+)/(.*?([^/]+)/?)$/
            }
        },
        submitHandler: function (form) { // for demo
            alert('valid form submitted'); // for demo
            return false; // for demo
        }
    });

});

1 Ответ

0 голосов
/ 08 сентября 2018

Поскольку литерал регулярного выражения обозначен /, вы должны экранировать любой /, который является частью шаблона.

/^s3:\/\/([^\/]+)\/(.*?([^\/]+)\/?)$/

(и на самом деле / может появляться в [], не вызывая проблем, также это работает):

/^s3:\/\/([^/]+)\/(.*?([^/]+)\/?)$/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...