JS-Regular-expression-awesome

:page_facing_up:我收藏的正则表达式大全,欢迎补充

Github stars Tracking Chart

JS-Regular-expression-awesome

:page_facing_up:我收藏的、开发中用过的正则表达式,欢迎补充

最新

  • 匹配2018-10-10格式的日期:^[1-9]\d{3}-([1-9], 1[0-2])-([1-9], [1-2]\d, 3[01])$
  • 验证文件扩展名:^.*?\.(html, css, jpg)$

密码验证类

  • 6-16位字符,区分大小写(不能是9位以下的纯数字,不含空格):^(?!\d{6,8}$)(?! )(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9_]{6,16}$
  • 6-16位字符,区分大小写(不能是9位以下的纯数字,不含空格),必须包含大写字母:^(?!\d{6,8}$)(?! )(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9_]{6,16}$
  • 密码不能为纯数字或字母,不少于6位:^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,}$

号码验证类

  • 验证微信号:^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$
  • 腾讯QQ号码:[1-9][0-9]{4,}
  • 国内电话号码:\d{3}-\d{8}, \d{4}-\{7,8}
  • 带中划线的手机号码:^[+]{0,1}(d){1,3}[ ]?([-]?((d), [ ]){1,12})+$
  • 普通手机号码:^1[34578]\d{9}$
  • 普通电话、传真号码:可以“+”开头,除数字外,可含有“-”:^[+]{0,1}(d){1,3}[ ]?([-]?((d), [ ]){1,12})+$
  • 18位身份证号码:^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9], X, x)$
  • 中国邮政编码:[1-9]\d{5}(?!\d)

地址类

  • IP地址:(25[0-5], 2[0-4]\d, [0-1]\d{2}, [1-9]?\d).(25[0-5], 2[0-4]\d, [0-1]\d{2}, [1-9]?\d).(25[0-5], 2[0-4]\d, [0-1]\d{2}, [1-9]?\d).(25[0-5], 2[0-4]\d, [0-1]\d{2}, [1-9]?\d)
  • URL:[a-zA-z]+://[^\s]*
  • Email地址:[\w!#$%&'*+/=?^_{, }~-]+(?:.[\w!#$%&'*+/=?^_{, }~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?

匹配数字

  • 验证数字:^[0-9]*$
  • 验证n位的数字:^\d{n}$
  • 验证至少n位数字:^\d{n,}$
  • 验证m-n位的数字:^\d{m,n}$
  • 验证零和非零开头的数字:^(0, [1-9][0-9]*)$
  • 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
  • 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
  • 验证非零的正整数:^\+?[1-9][0-9]*$
  • 验证非零的负整数:^\-[1-9][0-9]*$
  • 验证非负整数(正整数 + 0) ^\d+$
  • 验证非正整数(负整数 + 0) ^((-\d+), (0+))$
  • 验证长度为3的字符:^.{3}$
  • 验证由26个英文字母组成的字符串:^[A-Za-z]+$
  • 验证由26个大写英文字母组成的字符串:^[A-Z]+$
  • 验证由26个小写英文字母组成的字符串:^[a-z]+$
  • 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
  • 验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
  • 验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
  • 验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
  • 验证汉字:^[\u4e00-\u9fa5],{0,}$
  • 验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
  • 验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
  • 验证电话号码:^(\(\d{3,4}\), \d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
  • 验证身份证号(15位或18位数字):^\d{15}, \d{}18$
  • 验证一年的12个月:^(0?[1-9], 1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
  • 验证一个月的31天:^((0?[1-9]), ((1, 2)[0-9]), 30, 31)$ 正确格式为:01、09和1、31。
  • 整数:^-?\d+$
  • 非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
  • 正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*), ([0-9]*[1-9][0-9]*\.[0-9]+), ([0-9]*[1-9][0-9]*))$
  • 非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?), (0+(\.0+)?))$
  • 负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*), ([0-9]*[1-9][0-9]*\.[0-9]+), ([0-9]*[1-9][0-9]*)))$
  • 浮点数 ^(-?\d+)(\.\d+)?$

其他

手机号码中间四位用*代替

function encryptPhone(val){
    if(!val) return;
    return val.replace(/^(\d{3})(\d{4})(\d+)/, '$1****$3')
}

encryptPhone('13173786224'); // 131****6224

格式化金额

var money = 1003450.89;
console.log(money.toString().replace(/(?=\B(?:\d{3})+\b)(\d{3}(?:\.\d+$)?)/g,',$1'));
// 1,003,450.89

JS替换字符串中的空格

var reg = /([^\s])\s+([^\s\b])/g;
var str = " 中国  北京   朝阳区  df "; 
str = str.replace(reg, "$1%$2")

不允许输入如下字符: (像 !@#$%^& 等)*

var userName = $("#userRegistName").val(); 
var first = userName.charCodeAt(0); 
function CheckUserNameFormat(){
    if ((first>=65 && first <= 90), (first>=97 && first <=122)){
    var pattern =/^[A-Za-z0-9_]+$/;  //首字母必须是A-Z或者a-z
    if(pattern.test(userName)){ 
         ......
    }
} 

tips

匹配中文字符:[\u4e00-\u9fa5]

Main metrics

Overview
Name With Ownerdunizb/JS-Regular-expression-awesome
Primary Language
Program language (Language Count: 0)
Platform
License:
所有者活动
Created At2017-05-23 02:27:24
Pushed At2021-08-15 14:35:28
Last Commit At2021-08-15 22:35:28
Release Count0
用户参与
Stargazers Count165
Watchers Count6
Fork Count45
Commits Count26
Has Issues Enabled
Issues Count4
Issue Open Count4
Pull Requests Count1
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private