在做项目中,有时需要进行正则验证,但我又不太会正则表达式。

在一次又一次的寻找正则表达式的过程中,我最后总结了一个用于验证的函数,把我们常用的正则写在方法里,就不用每次都去网上找了。

可以根据需求进行修改,如果发现有什么错误的地方,麻烦你在评论处提出,以免误导别人,谢谢!谢谢!

  1. /**
  2. * 正则验证
  3. * @param s 验证字符串
  4. * @param type 类型
  5. * @returns {boolean} true:验证通过
  6. */
    function expValidate (s, type) {
  7. var objexp = null;
  8. switch (type) {
  9. case 'money': //金额格式,格式定义为带小数的正数,小数点后最多三位
  10. objexp = /^([1-9]\d{0,9}|0)([.]?|(\.\d{1,2})?)$/;
  11. break;
  12. case 'numletter_': //英文字母和数字和下划线组成
  13. objexp = /^[0-9a-zA-Z\_]+$/;
  14. break;
  15. case 'numletter': //英文字母和数字组成
  16. objexp = /^[0-9a-zA-Z]+$/;
  17. break;
  18. case 'numletterchina': //汉字、字母、数字组成
  19. objexp = /^[\u4E00-\u9FA5A-Za-z0-9_]+$/;
  20. break;
  21. case 'email': //邮件地址格式
  22. objexp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  23. break;
  24. case 'tel': //固话格式
  25. objexp = /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/;
  26. break;
  27. case 'mobile': //手机号码
  28. objexp = /^1[34578]\d{9}$/;
  29. break;
  30. case 'decimal': //浮点数
  31. objexp = /^(-?\d+)(\.\d+)?$/;
  32. break;
  33. case 'url': //网址
  34. objexp = /(http:\/\/|https:\/\/){0,1}[\w\/\.\?\&\=]+/;
  35. break;
  36. case 'date': //日期 YYYY-MM-DD格式
  37. objexp = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
  38. break;
  39. case 'int': //整数
  40. objexp = /^[0-9]*[1-9][0-9]*$/;
  41. break;
  42. case 'int+': //正整数包含0
  43. objexp = /^\\d+$/;
  44. break;
  45. case 'int-': //负整数包含0
  46. objexp = /^((-\\d+)|(0+))$/;
  47. break;
  48. case 'china': //中文
  49. objexp = /^[\u0391-\uFFE5]+$/;
  50. break;
  51. case 'pwdSimple'://简单密码6-32位任意字符
  52. objexp = /^.{6,32}$/;
  53. break;
  54. case 'pwdHard'://(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间)复杂密码
  55. objexp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ /;
  56. break;
  57. case 'loginName'://登录名(6-18位字母或数字)
  58. objexp = /^[A-Za-z0-9]{6,18}$/;
  59. break;
  60. case 'postCode'://邮政编码
  61. objexp = /^[0-9]\\d{5}$/;
  62. break;
  63. case 'fax'://传真
  64. objexp = /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
  65. break;
  66. case 'checkCode'://4位验证码
  67. objexp = /^[A-Za-z0-9]{4}$/;
  68. break;
  69. }
  70. return objexp.test(s);
  71. }

测试:

  1. // 验证用户名
  2. var loginName = 'admin888',
  3. var bool = expValidate(loginName ,'loginName');
  4. console.info(bool);
  5.  
  6. 结果:
    true

js -- 正则表达式集合的更多相关文章

  1. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  2. JS正则表达式大全(整理详细且实用)

    JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...

  3. JS中集合对象(Array、Map、Set)及类数组对象的使用与对比

    原文地址 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型, ...

  4. js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字

    js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字 <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  5. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  6. 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式

    1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet'  href='bootstrap-3.3.0-dist/dist/css ...

  7. js正则表达式图形化工具-rline

    github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...

  8. Python之路-(js正则表达式、前端页面的模板套用、Django基础)

    js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  9. js正则表达式replace里有变量的解决方法用到RegExp类

    一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...

随机推荐

  1. 【UWP】在 UWP 中使用 Exceptionless 进行遥测

    2020年1月17日更新: nightly build 版本已发布 https://www.myget.org/feed/exceptionless/package/nuget/Exceptionle ...

  2. HTML5创建高德地图

    创建高德地图 功能真的很好很强大,有图有证据! 1.申请key值 去官网2.https://webapi.amap.com/maps?v=1.4.11&key=e22196035aaa10db ...

  3. jenkins用户权限配置 Role-based Authorization Strategy

    插件简介 插件名称 Role-based Authorization Strategy 插件介绍 Role Strategy Plugin插件可以对构建的项目进行授权管理,让不同的用户管理不同的项目, ...

  4. 【pattern】设计模式(1) - 单例模式

    前言 好久没写博客,强迫自己写一篇.只是总结一下自己学习的单例模式. 说明 单例模式的定义,摘自baike: 单例模式最初的定义出现于<设计模式>(艾迪生维斯理, 1994):“保证一个类 ...

  5. GSS 系列题解

    GSS GSS1 随便猫树或者线段树,就可以过了 猫树不说,线段树可以维护左边最大,右边最大,区间最大,区间值然后就做出来了. //Isaunoya #pragma GCC optimize(2) # ...

  6. ASP.NET MVC5----数据注解和验证

    在使用MVC模式进行开发时,数据注解是经常使用的(模型之上操作),下面是我看书整理的一些常见的用法. 什么是验证,数据注解 验证 从全局来看,发现逻辑仅是整个验证的很小的一部分.验证首先需要管理用户友 ...

  7. 安全 - CORS(脚本请求等)

    功能概述 出于安全原因,浏览器限制从脚本内发起的跨域HTTP请求 或 拦截了跨域请求的结果. 例如,XMLHttpRequest和Fetch API遵循同源策略. 这意味着使用这些API的Web应用程 ...

  8. python3练习100题——045

    题目:统计 1 到 100 之和. sum(range(1,101)) 题目太容易了,我都不想用迭代浪费时间. 觉得这100道题难度设计越来越不合理.

  9. php如何获取单选复选和选择框的值

    1.很久没有写基础的东西了复习一下(往往简单的东西才复杂) <body> 选择语句 <form action="demo.php" method="po ...

  10. 原生JS操作class 极致版

    // 获取class function getClass(el) { return el.getAttribute('class') } // 设置class function setClass(el ...