📄我收藏的、开发中用过的正则表达式,欢迎补充
可视化编辑测试工具:https://regexper.com/
- 匹配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)){
......
}
}
匹配中文字符:[\u4e00-\u9fa5]