javascript自动生成表单验证的正则表达式的工具

上周,一位客户问我如何在网站上实现表单验证,我向他推荐了 jQueryValidation 插件。
这东西确实不错,很好用,验证规则也很多。
它适合那些不想自己编写验证逻辑的人。

但是,如果您是编程爱好者或者想要完全控制验证逻辑,直接使用原生 JavaScript 结合正则表达式也是一个好主意。
我自己尝试了一下,写了一个小函数来验证电子邮件地址。
代码如下:
javascript 函数验证电子邮件(电子邮件){ var 正则表达式 = /^[a-zA-Z0-9 ._-]+@[a-zA-Z0-9 .-]+\.[a-zA-Z]{2 ,4 }$/; 返回正则表达式.测试(电子邮件);
该函数检查邮箱是否符合基本格式。
然后我写了一个验证手机号码的函数:
javascript 函数 validateMobile(移动) { var 正则表达式 = /^1 [3 -9 ]\d{9 }$/; 返回正则表达式.测试(移动);
这两个函数使用正则表达式来匹配电子邮件地址和手机号码的格式。
虽然简单,但是非常实用。

不过,说实话,写正则表达式有时是一件很头疼的事情,尤其是面对复杂的验证需求时。
这时候如果不想这么麻烦的话,使用jQueryValidation插件就更方便了。
它有现成的API,易于使用且功能齐全。

但是,您可以根据自己的需要决定使用哪种方法。
如果你问我,我可能会说,如果你对编程感兴趣,就编写自己的正则表达式并了解更多;如果您只是想快速完成工作,请使用插件。
我还在思考这个问题。
最终,这两种方法都有其优点。

深入理解HTML required 属性及其表单依赖

上周看到了这个 HTML 必需属性 很有趣
2 02 3 年 1 0 月 2 6 日 朋友在实现项目时遇到了坑
核心功能是保证必填字段为必填。
提交表单时填写
适用于输入、选择、文本区域 检查字段是否为空
优点很明显 无需编写服务器验证码 用户体验好很多
但需要条件才能发挥作用 必须放在<form>内 该按钮必须是发送类型
常规按钮将不起作用 点击不会触发验证
2 02 3 年 1 0 月 2 7 日 我已经尝试过了 尝试将其放在 <form> 之外 实在不行
离开表单环境 请求不起作用
激活时间也很重要 必须是已承诺的事件 更改输入框不会触发
我只是在想别的事情 如果使用 JavaScript 发送 例如:form.submit() 必需的将保持有效
非常有用的代码示例 转义形式的示例 直接跳过
验证,放到表单中 单击发送按钮 浏览器会自行检查
替代方案是 JS 验证 但写作很难 你必须自己判断、提醒、防止遵守。

适用场景也很明确 单页或动态应用程序 可以使用JS验证
进行总结 为表单提交而设计的必要条件 如果您离开该表格,该表格将无效
如果您不使用该表格 我自己用JS写就可以了
但是客户端验证并不是万能的 服务器端仍需验证
最好组合使用 既方便用户使用 安全可靠
忘记它 就是这样

jquery 自定义validatebox的validType属性

说实话,我在之前的项目中其实也遇到过你提到的组合框扩展的情况。
当时我们用的是EasyUI框架,combobox组件还是蛮实用的。
您所说的关于将 validType 添加到数据选项的内容听起来像是您想向组合框添加验证规则,对吧?
有趣的是,validType 明确是 EasyUI 附带的验证类型,例如“number”和“date”。
您可以将其直接添加到数据选项中,例如 validType="number",并且当用户选择一个值时,它确实会进行初始验证。
但你是对的,仅此一点绝对是不够的。

我当时也是这么想的:将 validType 添加到前端以确保用户不会做出随机选择。
但提交到后台页面时,需要再次确认。
为什么?因为前端可能会被绕过,或者用户使用特殊手段绕过有效类型验证。
我记得有一个项目,用户直接使用F1 2 来改变JS变量,但是validType根本不起作用。

所以操作上,你可以这样做:在组合框的数据选项中添加一个validType,例如validType=“required”或validType=“number”。
同时,在提交页面的JS中创建验证逻辑。
例如,使用 jQuery 的 $.validate() 或手动编写函数检查。

小例子:假设在数据选项中添加了 validType="number"。
但是在提交表单的时候,你可以在JS中再写一段代码,像这样: javascript if (!$.isNumeric($("yourCombobox").val())) { alert("兄弟,选择的值不是数字"); 返回假; }
这种正面和背面的双重保险,比仅仅依靠一次认证要好。
当然,如何实现取决于你的项目中使用的技术的安排。
我自己不运行这个。
我记得数据在X左右,但我建议你验证一下。