什么是正则表达
正则表达式( Regular Expression ,简称regexp )
是一个特定的格式化模式,用于验证各种字符串是否匹配这个特征,进而实现高级的文本查找、替换、截取内容等操作
应用:在项目开发中,手机号码指定位数的隐藏、数据采集、敏感词的过滤以及表单的验证等功能
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
//密码 同时包含数字和和字母
var pwd = "a123456";
var isPwd = /(\D+\d+)|(\d+\D+)/;
console.log(isPwd.test(pwd));
//身份证号
// 区号1-6 0-9
//出生年7-10 0-9
//出生月11-12 0-9 0 1-9 1 0-2
//出生日13-14 0 1-9 1 0-9 2 0-9 3 0-1
//15-17 0-9
//18 0-9 xX
var id = "411324200001010000";
var isId = /^[0-9]{6}[0-9]{4}((0[1-9]){1}|(1[0-2]){1})((0[1-9]{1})|(1[0-9]{1})|(2[0-9]{1})|(3[0-1]{1}))[0-9]{3}[0-9xX]{1}$/;
console.log(isId.test(id));
// QQ号
// 第一位不为零 长度5-15
var qqNumber="326422409";
var isqqNumber= /^[1-9]{1}[0-9]{4,14}/;
console.log(isqqNumber.test(qqNumber));
// 手机号
// 第一位为 1 第二位不为0 长度11位
var phoneNumber="18637712345";
var isPhoneNumber=/^[1]{1}[1-9]{1}[0-9]{9}/;
console.log(isPhoneNumber.test(phoneNumber));
// 邮箱
// 6~ 18个字符,可使用字母、数字、下划线, 需要以字母开头 不区分大小写 +@+ 纯数字或纯字母 最少2位 最多7位 .com /.cn
// 匹配任意一个字母(大小写) ,数字,下划线
// {n} 匹配前面的字符n次
Email="ruohan123@gmail.com"
var isEmail=/^[a-z]{1}[\w]{5,17}[@]{1}[a-z0-9]{2,7}[.]{1}([com]{1}|[cn]{1})/;
console.log(isEmail.test(Email))
// 地址 有中文 数字 横杠
// xx省/xx自治区/xx特别行政区 xx市 xx区/xx县 xx镇/xx乡 xx路/xx村 xx号
//匹配中文字符的正则表达式: [u4e00-u9fa5]
var address="河南省南阳市宛城区钓鱼台镇孔明路666号";
var isAddress=/[\u4e00-\u9fa5]{2,}[省自治区特别行政区]{1}[\u4e00-\u9fa5]{2,}[市]{1}[\u4e00-\u9fa5]{1,}[区县]{1}[\u4e00-\u9fa5]{1,}[镇乡]{1}[\u4e00-\u9fa5]{1,}[路村]{1}\d+[号]{1}/;
console.log(isAddress.test(address));
// 邮编
// 第一位不为0 六位
var postcode="123456";
var isPostcode=/^[1-9]\d{5}/;
console.log(isPostcode.test(postcode))
// 银行卡号
// 62开头/4开头 16-19位
var bankCardNumber ="6211111111111111111 "
var isBankCardNumber=/(^[6]{1}|^[4]{1})[0-9]{15,18}/;
console.log(isBankCardNumber.test(bankCardNumber));
// 学号
// 10位 0609 开头 19年份 08班级 45 最多45人
var studentId= "0609190845"
var isStudentId=/^[0609]{4}((0[0-9])|(1[0-9])|(2[0-9]))[0-9]{1}[1-9]{1}[0-4]{1}[0-5]{1}/;
console.log(isStudentId.test(studentId))
// 车牌号
// 汉字 大写字母 点 5位数字字母
var carNumber="豫R·1234A"
var isCarNumber=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]{1}[A-Z]{1}·[A-Z0-9]{5}/;
console.log(isCarNumber.test(carNumber));
// 快递单号
//最少八位 最多13位
var expressNumber="12345a-123456-123"
var isExpressNumber=/[0-9a-z-]{8,13}/i;
console.log(isExpressNumber.test(expressNumber));
// 验证码 数字和字母 6位
var verifyNumber ="a12345"
var isVerifyNumber=/[a-z0-9]{6}/i;
console.log(isVerifyNumber.test(verifyNumber));
// ISBN号
// 978 979开头
var ISBN="978-7-115-18609-6";
var isISBN=/^(97[8]|97[9])-[0-9]-[0-9]{3}-[0-9]{5}-[0-9]$/;
console.log(isISBN.test(ISBN));
// 网址 .: :// /
//http/https :// 字母 . 数字/
var website="https://www.ruohan.org";
var isWebsit=/([https://]{1})|([http://]{1})www.[a-z0-9].[a-z0-9]/i;
console.log(isWebsit.test(website));
// IPv4地址
// 0-255.0-255.0-255.0-255
var IPv4="123.123.123.123";
var isIPv4=/0|[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{1}[0-9]{1}.0|[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{1}[0-9]{1}.0|[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{1}[0-9]{1}.0|[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{1}[0-9]{1}/;
console.log(isIPv4.test(isIPv4));
// IPv6地址
//32 位 数字字母
var IPv6="CDCD:910A:2222:5498:8475:1111:3900:2020";
var isIPv6=/([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}){1}/;
console.log(isIPv6.test(IPv6));
// 出生年月日 1999年01月01日
var birthday="1999年01月01日"
var isBirthday=/[0-9]{4}年((0[1-9]){1}|(1[0-2]){1})月((0[1-9]{1})|(1[0-9]{1})|(2[0-9]{1})|(3[0-1]{1}))日/;
console.log(isBirthday.test(birthday));
// 姓名 >=2 中文·中文
var name="阿尔伯特·爱因斯坦";
var isName=/([\u4e00-\u9fa5]·[\u4e00-\u9fa5])|([\u4e00-\u9fa5]{2,})/;
console.log(isName.test(name));
</script>
</body>
</html>