正则表达式

2021-12-21  本文已影响0人  Wanney

前言

学习好前端技术,想稍微深入一点扩展自己的技术,怎么也绕不开要学到它。很多前端人性化的交互,人性化的体现就在于各种智能的交互场景。比如,帮你补充需要输入的内容,帮你高亮模糊匹配你想要搜索的内容,帮你校验你输入的内容是不是一个电话号码或者邮箱地址等。

定义

正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串的一种文本模式。一版以双斜杠的形式出现,如:

// 从字符串 str 中提取数字部分的内容(匹配一次):
const str = "abc123hhds"  
const pattern = /[0-9]+/   
document.write(str.match(pattern))  // 123

这里具体语法不再赘述,直接搬了,还有在线测试工具帮助快速掌握。请戳


一些值得注意的语法

常用的正则表达式

  1. URL链接地址
const isUrl = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/
  1. 有效的密码:至少8个字符,不超过20位,包含至少1个字母,1个数字和1个特殊字符
const isValidPwd = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8, 20}$/
  1. 邮箱地址:
const isEmail = /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/
  1. 汉字:
const isChinese = /^[\U4E00-\U9FA5]{0,}$/
  1. 身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X:
const isIDCard = /^(\d{15})|(\d{18})|(\d{17}(\d|X|x))$/
上一篇 下一篇

猜你喜欢

热点阅读