/**
* 表单校验规则
* 不符合规则时,返回错误文案
* 符合规则时,返回false
*/ var rules = {} // 是否必填
rules.required = function (value) {
return (!!value || value === 0) ? false : "请输入内容"
}; // 最大字符长度
rules.maxLength = function (value, size) {
var size = size || 256;
return String(value).length <= size ? false : ("最大不超过" + size + "个字符")
} // 只允许字母和数字
rules.onlyAlphabetic = function (value) {
var reg = /^[0-9a-zA-Z]+$/;
return reg.test(value) ? false : "只能输入字母和数字"
} // 只允许字母数字和下划线
rules.onlyAlphabeticUnderline = function (value) {
var reg = /^[0-9a-zA-Z_]+$/;
return reg.test(value) ? false : "只能输入字母、数字或下划线"
} // 只允许数字
rules.onlyNumber = function (value) {
var reg = /^[0-9]+$/;
return reg.test(value) ? false : "只能输入数字"
} // 只允许字母
rules.onlyLetter = function (value) {
var reg = /^[a-zA-Z]+$/;
return reg.test(value) ? false : "只能输入字母"
} // 特殊字符
rules.noSpecial = function (value) {
var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im,
regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im;
return regEn.test(value) || regCn.test(value) ? false : "不能输入特殊字符"
} // 邮箱
rules.email = function (value) {
var reg = /^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/;
return reg.test(value) ? false : "邮箱格式错误"
} // 手机号(以1开头的11位数字)
rules.phone = function (value) {
var reg = /^[1][3,4,5,7,8][0-9]{9}$/;
return reg.test(value) ? false : "手机格式错误"
} // 只允许汉字
rules.chinese = function (value) {
var reg = /^[\u4e00-\u9fa5]+$/;
return reg.test(value) ? false : "只能输入汉字"
} // 密码格式校验
rules.password = function (value) {
if (String(value).length < 6) {
return "密码长度不小于6位"
}
if (String(value).length > 18) {
return "密码长度不超过18位"
}
var level = 0;
if (value.search(/[a-z]/) > -1) {
level++; //密码中包含小写字母
}
if (value.search(/[A-Z]/) > -1) {
level++; //密码中包含大写字母
}
if (value.search(/[0-9]/) > -1) {
level++; //密码中包含数组
}
if (value.search(/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im) > -1) {
level++; //密码中包含特殊符号
}
if(level<2){
return "密码至少包含大写字母、小写字母、数字、标点符号中的两种"
}else{
return level; // 当前密码强度为level(2/3/4)
}
} export default rules;

  

js正则校验表单的更多相关文章

  1. jQuery form插件的使用--使用 fieldValue 方法校验表单

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  2. jQuery form插件的使用--用 formData 参数校验表单,验证后提交(简单验证).

    Form Plugin API 里提供了很多有用的方法可以让你轻松的处理表单里的数据和表单的提交过程. 测试环境:部署到Tomcat中的web项目. 一.引入依赖js <script src=& ...

  3. 关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题

        方法使用前需了解: 来自”和“小编的小提示: 首先打印一下this.$refs[formName],检查是否拿到了正确的需要验证的form. 其次在拿到了正确的form后,检查该form上添加 ...

  4. 第十七篇 JS验证form表单

    JS验证form表单   这节课做一个实际的,项目里会遇到的东西,例如登录页面,我们输入‘用户名’和‘密码’或者‘手机号’还有‘验证码’等等,它都会做一个前端验证,比如验证码,是6位有效数字组成,那么 ...

  5. JS、jqueryie6浏览器下使用js无法提交表单的解决办法

    -----------------------JS.jqueryie6浏览器下使用js无法提交表单的解决办法---------------------------------------------- ...

  6. js/jquery/插件表单验证

    媳妇要学js,就收集一些资料给她. 1.js 表单验证 : http://hi.baidu.com/yanchao0901/item/161f563fb84ea5433075a1eb 2.jquery ...

  7. javascript将异步校验表单改写为同步表单

    同步表单校验的缺点 响应错误信息时,需要重新加载整个页面(虽然有缓存,客户端仍然需要通过http协议对比每个文件是否有更新,以保持文件最新) 服务器响应错误以后,用户之前所输入的信息全部丢失了,用户需 ...

  8. js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题

    js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...

  9. 通过JS模拟select表单,达到美化效果[demo][转]

    转自: http://www.cnblogs.com/dreamback/p/SelectorJS.html 通过JS模拟select表单,达到美化效果 Demo ------------------ ...

随机推荐

  1. echarts饼图字体大小修改

    const option = { tooltip: { trigger: 'item', formatter: "{a} {b}: {c} ({d}%)" }, series: [ ...

  2. 杂记:Linux下gcc升级

    公司要求,需要在CentOS6.5系统下进行一些测试.因为编写的测试程序中使用了一些C++11之后新增的特性,而CentOS6.5中安装的gcc版本为4.4.7,并不支持C++11,所以需要对gcc进 ...

  3. Android编程权威指南(第2版)--第16章 使用intent拍照 挑战练习

    16.7挑战练习:优化照片显示 新建dialog_photo.xml 1234567891011121314 <?xml version="1.0" encoding=&qu ...

  4. Java里观察者模式(订阅发布模式)

    创建主题(Subject)接口 创建订阅者(Observer)接口 实现主题 实现观察者 测试 总结 在公司开发项目,如果碰到一些在特定条件下触发某些逻辑操作的功能的实现基本上都是用的定时器 比如用户 ...

  5. 网络字体反爬之pyspider爬取起点中文小说

    前几天跟同事聊到最近在看什么小说,想起之前看过一篇文章说的是网络十大水文,就想把起点上的小说信息爬一下,搞点可视化数据看看.这段时间正在看爬虫框架-pyspider,觉得这种网站用框架还是很方便的,所 ...

  6. Leetcode1353_最多可以参加的会议数目

    题目地址 给定n个会议时间区间,会议不用全程参加,问最多能参加的数目. 时间区间按左端点排序,扫一遍,每一天把当天开始的区间结束时间加入,同时把这一天之前结束的区间删掉,然后贪心从最小堆取出结束时间的 ...

  7. 初学Qt——菜单栏QAction+ QstackedWidget堆栈窗体实现切换分页

    QstackedWidget 堆栈窗体,具体不作详述,stackedWidget 主要实现效果类似与界面分页效果,主要常与QListWidget QtreeWidget QTableWidget等结合 ...

  8. mysql JOIN查询

    查询左表a,并且关联a表在b表中的关联,如果关联不存在也可以查出左表的,注:只查询a的部分列,和b的部分列 SELECT a.id, b.id as my FROM a LEFT JOIN b ON ...

  9. 第一章 感受mac之美-换一种方式用电脑,开启新历程

    感谢关注我的读者一直以来的追随与信任.去年到今年以来大环境都不是很好.裁员,机构优化,工厂倒闭,公司破产,贸易战等消息传来,不少还是身边发生的.今年开年以来更是有病毒横行,天降蝗灾等灾害.愿大家都好好 ...

  10. 软件工程实验一 Git代码版本管理

    实验一  GIT 代码版本管理 一.实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 二.实验内容: 1)安装git: 2)初始配置git ,gi ...