【问题标题】:JQuery Validation - pattern rule not working and also causes other rules not to workJQuery Validation - 模式规则不起作用,也会导致其他规则不起作用
【发布时间】:2018-09-07 23:17:35
【问题描述】:

对于我希望验证的 HTML 表单输入,我有以下 Regex 模式规则。模式规则旨在遵循 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
        }
    });

});

【问题讨论】:

    标签: javascript jquery regex validation


    【解决方案1】:

    由于正则表达式文字是用/ 描述的,因此您必须转义任何/,这是该模式的一部分。

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

    (实际上,/ 可以出现在 [] 中而不会引起问题,所以这也有效):

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

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 2017-07-05
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多