前世今生⏳
-
美国新泽西州的Warren McCulloch和美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出了一种用数学方式来描述神经网络的新方法
-
1951 年,一位数学科学家Stephen Kleene,发表了一篇题目是《神经网事件的表示法》的论文,利用称之为正则集合的数学符号来描述此模型,引入了正则表达式的概念。
-
Unix之父Ken Thompson就把这一成果应用于计算搜索算法的一些早期研究上,并将此符号系统引入编辑器QED,然后是Unix上的编辑器ed,并最终引入grep
元字符列表📡
- $ 在行尾匹配。
- . 匹配任意单个字符。
- [ ] 匹配在中括号中的任意字符。
- [^ ] 匹配不在中括号中的任意字符。
- - 匹配任意在短横线两端字符闭区间中间的任意一个字符。
- * 匹配先前模式零次或多次。
- + 匹配先前模式一次或多次。
- ? 匹配先前模式零次或一次。
- | 匹配|两侧的任意一种模式。
- () 保存一个匹配的子表达式
有用的小工具🔍
常见匹配规则⚙
export const regZh = (str)=> {
return RegExp(/[\u4e00-\u9fa5]+/).test(str)
}
//只允许中文
export const regOnlyZh = (str)=> {
return RegExp(/^[\u4e00-\u9fa5]+$/).test(str)
}
//只允许中文,英文字母,数字
export const regZhEnNum = (str)=> {
return RegExp(/^[\u4e00-\u9fa5A-Za-z0-9]+$/).test(str)
}
//匹配身份证
export const regIDC = (str)=> {
return RegExp(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/).test(str);
}
//匹配手机号
export const regPhone = (str)=> {
return RegExp(/^1[34578]\d{9}$/).test(str);
}
//匹配邮箱格式
export const regEmail = (str)=> {
return RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/).test(str);
}
//匹配域名
export const regRealmName = (str)=> {
return RegExp(/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\/.?/).test(str)
}
//匹配密码(密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线))
export const regPwd = (str)=> {
return RegExp(/^[a-zA-Z]\w{5,17}$/).test(str)
}
//日期格式 2019-01-12
export const regDate = (str)=> {
return RegExp(/^\d{4}-\d{1,2}-\d{1,2}/).test(str)
}
//匹配空白行
export const regWhiteLine = (str)=>{
return RegExp(/\n\s*\r/).test(str)
}
//匹配正数、负数、和小数
export const regNum1 = (str)=>{
return RegExp(/^(\-|\+)?\d+(\.\d+)?$/).test(str)
}
//匹配零和非零开头的数字
export const regNum2 = (str)=>{
return RegExp(/^(0|[1-9][0-9]*)$/).test(str)
}
//匹配数字
export const regNum3 = (str)=>{
return RegExp(/^[0-9]*$/).test(str)
}
//匹配m-n位的数字
export const regNum4 = (str)=>{
return RegExp(/^\d{m,n}$/).test(str)
}
//长度为3-20的所有字符
export const allByte = (str)=>{
return RegExp(/^.{3,20}$/).test(str)
}
感谢🙇
- 手写vue的几个流程✍
- 如果感觉对您的学习工作有帮助,请将它分享给需要的人,或者点赞鼓励一下,感谢支持