7.JavaScript--正则表达式

实验原理

正则表达式是用于处理字符串的强大工具,其他编程语言中也有正则表达式式的概念,区别只在于不同的编程语言实现支持的语法数量不同。它拥有自己的独特的语法以及一个独立的处理引擎,在提供了正则表达式的语言里,正则表达式的语法都是一样的。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。它的应用领域大致有:

  • C#
  • Java
  • JavaScript
  • Python
  • Ruby
    正则表达式组成元素为:
    正则表达式
    优点:速度快,效率高,
    缺点:新手上手有点难

元字符:含有固定含义的特殊符号
默认匹配一个 换行符特殊

  • 1 . 匹配一个数字
  • 2 \w 匹配字母,数字,下划线
  • 3 \s 匹配任意空白符 空格 换行 回车
  • 4 \d 匹配数字
  • 5 \n 匹配一个换行符
  • 6 \t 匹配一个制表符
  • 7 ^ 匹配开始
  • 8 $ 匹配结束
  • 9 \W \S \D 分别匹配非字母数字下划线,匹配非空白符,匹配非数字
  • 10 a|b 匹配a或者b
  • 11 () 匹配括号内的表达式,也表示一个组
  • 12 [] 匹配字符组中的字符
  • 17 [^...] 匹配除了字符组中字符的所有字符

量词

  • 1 * 重复0次或更多次
  • 2 + 重复1次或更多次
  • 3 ? 重复0次或一次
  • 4 {n} 重复n次
  • 5 {n,} 重复n次或更多次
  • 6 {n,m} 重复n到m次

贪婪匹配和惰性匹配

  • 1 .* 贪婪匹配 尽可能长的匹配

  • 2 .*? 惰性匹配 尽可能短的匹配
    写爬虫用的最多的就是这个惰性匹配

常见的正则表达式:

正则表达式是以/作为开始和结束的标记,表达式语法在两个/中间包裹

  • 是否带有小数:

reg=/^\d+\.\d+$/

  • 是否由2~4位长度的中文名称组成:

reg=/^[\u4E00-\u9FA5]{2,4}$/

  • 校验是否全由8位数字构成:

reg=/^[0-9]{8}$/

  • 校验电话码格式:

reg=/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/

  • 校验邮件地址是否合法:

reg=/^\w+@[a-zA-Z0-9]{2,10}(?:.[a-z]{2,4}){1,3}$/

也可以写成

reg='^\w+@(\w+\.)+\w+$'

  • 检查给给定字符串是否为合法身份证格式:

reg='^\d{18}|\d{15}$'

  • 检查给定字符串是否为移动手机号码:

reg='^(13[4-9]\d{8})|(15[01289]\d{8})$'

  • 密码:匹配长度为5-20,必须一字母开头包含数字、“_”、“.”的字符:

reg='^[a-zA-Z]{1}([a-zA-Z0-9._]){4,19}$'

  • 昵称:匹配长度为6-20的字符串,可以包含字母、数字、下划线:

reg='^(\w){6,20}$'

  • ip地址:检查给定字符串是否为合法ip地址:

reg='^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'

在js中test方法是一个正则表达式方法。test()方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回true,否则返回false

posted @   嘲讽二百五的五百五  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示