js常用的正则表达式

以下正则表达式,在js环境下,测试通过。

匹配手机号

手机号为 1 开头,第二为数字为: 3、4、5、6、7、8、9 都可以,后面再跟 9位数字,总共11位。

  1. var regStr = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;

也可以写成这样:

  1. var regStr = /^[1](3|4|5|6|7|8|9)[0-9]{9}$/;

以上正则表达式可以匹配的几个例子:
13788888888

13888888888

19888888888

19888888888

用户名

8-12位数字,字母,下划线,横线,

  1. var regStr = /^[a-zA-Z-_]{8,12}$/

密码强度

密码强度正则,最小6位,至少包含一个大写字母,一个小写字母,一个数字,一个特殊字符

  1. var regStr = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;

正整数匹配

  1. var regStr = /^\d+$/;

也可以这么写:

  1. var regStr = /^[1-9][0-9]+$/

负数匹配

  1. var regStr = /^-\d+$/;

同样可以这么写:

  1. var regStr = /^-[1-9][0-9]+$/;

整数匹配

  1. var regStr = /^-?\d+$/;

其中 ? 表示 有一个或者没有的意思

浮点数匹配

  1. var regStr = /^\d*\.?\d+$/;

同理浮点数的负数匹配

  1. var regStr = /^-\d*\.?\d+$/;

数字匹配 不管正负

  1. var regStr = /^-?\d*\.?\d+$/;

Email匹配

  1. var regStr = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/

身份证号的匹配

  1. var regStr = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;

URL匹配

  1. var regStr = /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;

匹配http协议

  1. var regStr = /^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$/

IP地址 v4

  1. var regStr = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;

车牌号的正则匹配

  1. var regStr = /^[京津沪渝冀豫云辽黑湘鲁皖新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;

包含中文

  1. var regStr = /[\u4E00-\u9FA5]/

纯汉字,长度为 0+

  1. var regStr = ^[\u4e00-\u9fa5]{0,}$

域名

  1. var regStr = [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

空白正则表达式

  1. var regStr = /\n\s*\r/

该正则表达式常用的就是删除空行。

双字节字符

  1. var regStr = [^\x00-\xff];

用于计算一个字符串的整整长度,双字节(汉字)是2,ASCII是1个长度

16进制颜色匹配

  1. var regStr = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/

日期匹配

  1. var regStr = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/

该匹配有做日期和月份的实际限制。因为不可能出现 88月份99日期。

  1. var regStr = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
  2. //输出 true
  3. console.log(dP2.test("2017-02-11"));
  4. //输出 false
  5. console.log(dP2.test("2017-15-11"));
  6. //输出 false
  7. console.log(dP2.test("2017-02-29"));

QQ号码正则匹配

  1. var regStr = /^[1-9][0-9]{4,10}$/;

微信号正则匹配

  1. var regStr = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/