基础4:无法覆盖其正则表达式以验证密码

时间:2013-09-09 09:23:26

标签: validation zurb-foundation

我想覆盖由foundation(zurb)提供的密码模式,但它没有根据默认表达式识别我的覆盖正则表达式并生成错误。 默认情况下,基金会提供的密码验证“必须至少包含8个字符,包含1个大写字母,1个数字和1个特殊字符”。 为此,我使用了以下内容:

1)

<head>
<script>
$(document)
  .foundation()
  .foundation('abide', {
    patterns: {
      new: ^[a-zA-Z]\w{3,14}$,
       }
  });
 </script></head>
<body>
<form class="custom" data-abide>
<div class="row">
    <div class="large-12 columns">
        <label>Password <small>required</small></label>
            <input type="password" pattern="new" required >
                <small class="error" data-error-message="">validation error.</small>
    </div>
</div>

</form>
</body>

2)

<form class="custom" data-abide="">
</form>

3)输入标签中直接使用的模式:

<input type="password" pattern="^[a-zA-Z]\w{3,14}$" required >

但所有这些都没有用。请建议我解决我的问题。

您可以找到示例程序 - here

2 个答案:

答案 0 :(得分:11)

在运行基础之前更新值:

<script>
Foundation.libs.abide.settings.patterns.password = /^\w{3,14}$/;
$(document).foundation();
</script>

答案 1 :(得分:3)

替换名为password的模式可以解决问题。变化

<script>
  $(document).foundation();
</script>

index.html的底部,代码如下:

<script>
  $(document)
    .foundation()
    .foundation('abide', {
      patterns: {
        password: /^\w{3,14}$/,
      }
    });
</script>

请注意,您提供的正则表达式(^[a-zA-Z]\w{3,14}$)应该在JavaScript中写为/^[a-zA-Z]\w{3,14}$/