【问题标题】:Disallowing spaces in usernames [UserFrosting/Fortress]用户名中不允许有空格 [UserFrosting/Fortress]
【发布时间】:2017-01-28 02:03:21
【问题描述】:

我将如何实施过滤器以阻止用户名中的空格(在注册期间)?

我一直在查看Fortress 文档,可能regex 选项是要查找的选项。但是没有关于正则表达式的文档示例,到目前为止,我自己的努力都没有成功(包括 \ 在 JSON 文档中转义问题)。

我希望这很容易解决。 谢谢。

[UserFrosting 0.3.1]

【问题讨论】:

    标签: validation userfrosting


    【解决方案1】:

    Regex 在这种情况下确实是最好的选择。你试过了吗:

    "user_name" : {
        "validators" : {
            "length" : {
                "min" : 1,
                "max" : 50,
                "message" : "ACCOUNT_USER_CHAR_LIMIT"
            },
            "required" : {
                "message" : "ACCOUNT_SPECIFY_USERNAME"
            },
            "regex" : {
                "regex" : "/^[\S]*$/",
                "message" : "Username cannot contain any whitespace characters."
            }
        },
        "sanitizers" : {
            "escape" : {}
        }        
    }
    

    【讨论】:

    • 不起作用,错误日志中的 JSON 无效,结果是空白页。我认为这是需要以某种方式逃脱的 \ 。也许是别的东西。另外,您在“正则表达式”之后忘记了逗号?在我的一些测试中,我还得到了“未定义的索引:正则表达式”。无法让它工作。
    • 修正了逗号。那么错误仅在服务器端代码上?还是在翻译成 Javascript 规则时也失败了?
    • 为了测试,我用你的版本替换了 register.json 中的“user_name”条目。注册页面生成空白(白色)文档。在服务器错误日志中,我得到以下信息:“找不到...register.json,或者它不包含有效的 JSON 文档...”。问题似乎是正则表达式条目中的 \ (反斜杠)。一旦我删除反斜杠,页面就会加载。 (但脚本当然不能按预期工作)
    • 所以看起来问题在于 Javascript 和 PHP 都需要将架构识别为有效的 JSON 文档。如您所见,`\` 引起了问题。显然您需要使用 四个 反斜杠才能正确转义 - 查看this answer
    猜你喜欢
    • 2016-10-14
    • 2012-03-14
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 2017-01-24
    相关资源
    最近更新 更多