对于表单验证,layui官方文档提供了内置的校验规则,在表单元素上加上 lay-verify="" 属性值即可,如:
<input type="text" lay-verify="email">
还同时支持多条规则的验证,如下:
<input type="text" lay-verify="required|phone|number">
内置的校验规则,以下是我从layui官方文档提取出来的属性值:
required(必填项)
phone(手机号)
email(邮箱)
url(网址)
number(数字)
date(日期)
identity(身份证)
自定义值
自定义验证规则代码如下:
form.verify({
username: function(value, item){ //value:表单的值、item:表单的DOM对象
if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
return '用户名不能有特殊字符';
}
if(/(^\_)|(\__)|(\_+$)/.test(value)){
return '用户名首尾不能出现下划线\'_\'';
}
if(/^\d+\d+\d$/.test(value)){
return '用户名不能全为数字';
}
//如果不想自动弹出默认提示框,可以直接返回 true,这时你可以通过其他任意方式提示(v2.5.7 新增)
if(value === 'xxx'){
alert('用户名不能为敏感词');
return true;
}
}
//我们既支持上述函数式的方式,也支持下述数组的形式
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
,pass: [
/^[\S]{6,12}$/
,'密码必须6到12位,且不能出现空格'
]
});
要比较两次密码输入是否一致,就要用到layui官方文档的的自定义验证规则:
confirmPass : function(value) {
if ($('input[name=usrPassword]').val() !== value)
return '两次密码输入不一致!';
}
完整代码如下
html代码如下
展示结果:
别忘了把密码框的属性改成type="password"