我想覆盖由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
答案 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}$/
。