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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端