【问题标题】:Regex - match whole word in parsley.js正则表达式 - 匹配 parsley.js 中的整个单词
【发布时间】:2016-01-07 14:20:53
【问题描述】:

如何将两个完整的单词与 parsley.js 的 data-parsley-pattern 属性中的 or(|) 操作数匹配?

如您所见,我想匹配单词usermoderator

我尝试过:data-parsley-pattern="/(user|moderator)/",这是普通的正则表达式,可与其他标准化的正则表达式匹配,如 regex101.com: https://regex101.com/r/kD7sR1/1

【问题讨论】:

    标签: javascript html regex parsley.js


    【解决方案1】:

    data-parsley-pattern 2.0 documentation

    验证值是否与特定的正则表达式 (regex) 匹配。 请注意,模式是锚定的,即必须匹配整个字符串。 Parsley 偏离了看起来像 /pattern/{flag} 的模式的标准;这些被解释为 litteral regexp 并且没有锚定。

    所以,看起来你的正则表达式应该可以工作了。

    如果没有,请尝试

    data-parsley-pattern="/[\s\S]*(user|moderator)[\s\S]*/"
    

    [\s\S]* 将匹配零个或多个字符(任何字符,包括换行符)。

    【讨论】:

    • 累积。对于reference page,单个\ 应该可以工作。
    • 这不太正确。模式是锚定的,除非它们看起来像 /pattern/ 之后带有可选标志,在这种情况下它们不是。
    • True:Parsley 偏离了看起来像 /pattern/{flag} 的模式的标准;这些被解释为 litteral regexp 而不是锚定的。 那么,问这个问题有什么意义呢?也许使用的版本仍然需要锚定?
    • 确实,我认为 OP 在某种程度上是错误的。旧版本没有锚定模式,所以我认为它并不总是有效。
    • 不管怎样,你注意到了。
    【解决方案2】:

    只要您使用带有/.../ 的完整表单,您的模式应该可以工作,否则该模式将被锚定。你甚至不需要括号,但它们也不会受到伤害。

    这是一个简单使用的working demo

    <input data-parsley-pattern="/user|moderator/" type="text" name="fullname" required>
    

    【讨论】:

      猜你喜欢
      • 2010-11-15
      • 2012-01-06
      • 2011-08-07
      • 2017-07-08
      • 1970-01-01
      相关资源
      最近更新 更多