跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Layui表单验证规则lay-verify如何引用外部正则表达式文件

不能。lay-verify 不支持引用外部 JS 文件中的正则,仅接受内置类型或内联正则字面量;复用需通过 form.verify() 在 script 中注册规则,并用 lay-verify="ruleName" 调用。 lay-verify 能不能直接引用外部 JS 文件里的正则? 不能。
lay-verify
的值只接受内置验证类型(如
required
email
)或内联的正则字面量(如
lay-verify="/^1[3-9]\d{9}$/"
),不支持加载外部 js 文件中的变量或函数。 想复用正则,怎么在 HTML 里写才不重复又可维护? 把正则逻辑抽到页面级
中,用 Layui 的
form.verify()
手动注册验证规则,而不是依赖
lay-verify
属性自动触发。 在
,但内容必须是可执行的 JS 代码,不是纯正则文本。 外部文件(如
reg.js
)写成:
window.REGS = { phone: /^1[3-9]\d{9}$/, idCard: /^\d{17}[\dXx]$/ };
页面中先引入该文件,再在
layui.use
里用
form.verify({ phone: ... })
引用
REGS.phone
别用
import
或模块语法——Layui 2.x 默认不支持 ES Module,会报
Unexpected token 'export'
如果用了构建工具(如 webpack),确保
REGS
挂在全局,或通过
externals
暴露给 Layui 复杂点在于:Layui 的验证机制是同步注册 + 异步触发,所有自定义规则必须在表单渲染前完成注册;很多人把
form.verify()
放在 DOM 加载后但
form.render()
之前,结果规则没生效。

相关文章