【必须收藏】工作中必定用到的正则表达式
前言
正则表达式是一种匹配模式
,匹配字符和位置。
合理利用正则表达式可以提高工作效率。
这里整理了一些工作中肯定会用到的正则表达式。
大家可以收藏。
中文匹配
提取字符串中的所有中文字符
演示:
//正则表达式
var regex=/[\u4e00-\u9fa5]/g;
//测试数据
var testStr="前端小秘书,Front Web";
testStr.match(regex);
//output ['前', '端', '小', '秘', '书']
邮箱地址匹配
正则:
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
URL匹配
正则:
[a-zA-z]+://[^\s]*
国内电话号码匹配
匹配区号+号码的规则
正则:
\d{3}-\d{8}|\d{4}-\{7,8}
匹配正整数
正则:
^[1-9]\d*$
匹配整数
正则:
^-?[1-9]\d*$
18位省份证号
正则:
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
数字转千分符格式(xx,xxx,xxx)
正则:
(\d)(?=(?:\d{3})+$)
演示:
let regex=/(\d)(?=(?:\d{3})+$)/g
let num = "12345678";
console.log(num.replace(regex,'$1,'))
//output "12,345,678"
手机号分割(xxx-xxxx-xxxx)
let regex = /(?=(\d{4})+$)/g
let phone = '13888889999'
console.log(phone.replace(regex, '-')) // 138-8888-9999
账号校验
字母开头,允许5-16字节,允许字母数字下划线
正则:
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码校验
字母开头,长度在6~18之间,只能包含字母、数字和下划线
^[a-zA-Z]\w{5,17}$
包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间
^(?=.\*\d)(?=.\*[a-z])(?=.\*[A-Z])[a-zA-Z0-9]{8,10}$
包含大小写字母和数字的组合,可以使用特殊字符,长度在8-10之间
^(?=.\*\d)(?=.\*[a-z])(?=.\*[A-Z]).{8,10}$
IP地址校验
正则:
((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
匹配某俩个字符之间的内容
假如,我们要匹配=
和&
中间的内容。
不包括俩字符的
(?<=\=).+(?=\&)
包括俩字符的
/\=(.*)\&/
包括 =
不包括 &
/(\=).+(?=\&)/
演示:
//不包括俩字符的
var regx1=/(?<=\=).+(?=\&)/
//包括俩字符的
var regx2=/\=(.*)\&/
//包括 `=`不包括 `&`
var regx3=/(\=).+(?=\&)/
var testString='q=web&type'
testString.match(regx1); //web
testString.match(regx2); //=web&
testString.match(regx3); //=web
赶紧收藏起来吧。
喜欢的话、点击关注。