作为程序猿(程序媛),写带有表单的项目是肯定会有的,但一般来说虽然后台会有一些判断/验证逻辑,可我们不能把任务都丢给后台,这里小汪列了一些比较常用的正则验证
1.用户账号验证:
规则:用户账号开头需是字母,中间到结尾可以有字母、数字、字符,但字符只能是_(下划线)
let accountNumParent = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/;
console.log(accountNumParent.test('q123_25'));返回 true
console.log(accountNumParent.test('q123@45'));返回 false
2.密码验证(高强度):
规则:必须有包含一个以上的 大写字母、小写字母、数字、以及规定的字符,6-16位
想修改规则的小伙伴可根据需求复制后自行修改喔,下方代码有示例
let passwordParent = /^(?=.*\d)(?=.*[.!@.?#*&%^])(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9.!@.?#*&%^]{6,16}$/;
console.log(passwordParent.test("QaQ1314520."));返回 true
只需包含一个大小写字母与数字正则6-16位 /^(?=.*\d)(?=.*[A-Za-z])
passwordParent = /^(?=.*\d)(?=.*[A-Za-z])[a-zA-Z0-9.!@.?#*&%^]{6,16}$/;
console.log(passwordParent.test("Q1314520."));返回 true
3.手机号正则:
规则:满足 1开头 第二位为3/9的 第三位可以是0-9或第二位为4的第三位为5/7/9以此类推,到最后必须是数字且后续是8位数
let NumParent = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
console.log(NumParent.test(13114115116));//返回 true
console.log(NumParent.test(17914115116));//返回 false
4.身份证正则:
规则:15位数字或18位数字或17位数字+(1位数字或X或x)
let userParent = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
console.log(userParent.test("420222202001230123"));返回 true
console.log(userParent.test("42022220200123012X"));返回 true
console.log(userParent.test("4202222020012301X"));返回 false
5.邮箱正则:
let EmailPattern = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
console.log(EmailPattern.test('469594939@qq.com'));返回 true
console.log(EmailPattern.test('469594939@163.com'));返回 true
注意:这里是乱填的邮箱
6.链接正则:
let urlParent = /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
console.log(urlParent.test("http://www.baidu.com"));返回 true
console.log(urlParent.test("https://www.baidu.com"));返回 true
console.log(urlParent.test("httpx://www.baidu.com"));返回 false
7.16进制颜色正则
var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
console.log(cPattern.test("#b8b8b8"));返回 true
8.车牌号正则:
var LPPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
console.log(LPPattern.test("鄂A88888"));返回 true
9.文字正则:
var textPattern = /[\u4E00-\u9FA5]/;
console.log(cnPattern.test("加油武汉")); 返回 true
10.QQ号正则:
var qqPattern = /^[1-9][0-9]{4,10}$/;
console.log(qqPattern.test("1369221535"));返回 true
注意:乱输的QQ号
11.微信号正则:
var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
console.log(wxPattern.test("wx_xw001"));返回 true
注意:乱输的微信号
以上是小汪认为可能会经常用到的正则了,如果有帮助,别忘了点个赞哟(有问题也记得提醒小汪修改,万分感谢)。
下面小汪简单写一下对正则符号的解析:
1.正则元字符
【\d 匹配数字】
\D 匹配任意非数字的字符
【\w 匹配字母或数字或下划线】
\W 匹配任意不是字母,数字,下划线
\s 匹配任意的空白符 【包括空格、制表符、换页符等 】
\S 匹配任意不是空白符的字符
【\r 匹配一个回车符 】
【\n 换行符匹配; 】
. 匹配除换行符以外的任意单个字符
【 ^ 表示匹配行首的文本(以谁开始) 】
【$ 表示匹配行尾的文本(以谁结束) 】
2.限定符
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
3.正则表达式标志
【g 全局搜索。
i 不区分大小写搜索。】
m 多行搜索。
如小伙伴有时间可以看菜鸟教程学习,这里面有比较详细的解析,对应的字符是什么作用,以及正则表达式。