网站首页 > 博客文章 正文
关注我,从零学习JavaScript系列编程知识,带大家一起用编程技能赚钱。
抛砖引玉,本文概述了正则表达式的语法规则,介绍了正则表达式在JavaScript中的应用方法,引用了正则表达式的学习导图,给出了正则表达式的在线可视化。
正则表达式是文本利器,在之后的高级篇中会以专题形式对正则表达式进行更详细的介绍。
一、简介
概念:正则表达式(RE, Regular Expression)是由字符序列(普通字符和元字符)和修饰符组成的搜索模式,可以匹配一系列符合某个句法规则的字符串,用于文本搜索和文本替换。
// 正则表达式语法
/[正则主体]/[修饰符] // 修饰符可选
let pattern = new RegExp('typescript', 'i') // 方法一
let pattern = /typescript/i // 方法二
pattern 是正则表达式对象(RegExp的实例)
/typescript/i 是一个正则表达式
typescript 正则主体,用于检索
i 修饰符,用于指定大小写不敏感
正则主体:普通字符和元字符
普通字符:包括没有显式指定为元字符的所有可打印和不可打印字符。包括所有大写字母、所有小写字母、所有数字、所有标点符号和一些其他符号。
元字符:非打印字符、特殊字符、限定字符
修饰符
// i 指定大小写不敏感匹配
// g 指定全局匹配
// m 指定多行匹配
二、字符串
// search()
let pattern = /typescript/i
let str = 'Hello, TypeScript.'
let index = str.search(pattern)
console.log(index) // 7
// replace()
let pattern = /typescript/i
let str = 'Hello, TypeScript'
let res = str.replace(pattern, 'world.')
console.log(res) // Hello, world.
三、RegExp
// test() 判断是否存在
let str = 'You are the best, I love you.'
let re = new RegExp('ou', 'ig') // 全局大小写不敏感匹配ou
let res = re.test(str)
console.log(res) // true
// exec()
let res = Re.exec(str)
console.log(res)
// compile() 改变正则表达式
re.compile('uo')
let res = re.test(str)
console.log(res) // false
四、实例
匹配车牌号(非新能源)
// 正则表达式
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$/g
// 说明
^ // 以什么开头
$ // 以什么结尾
[] // 可选项集合
{n} // 匹配n次
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]
// 以 [京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领] 中任一汉字开头
[A-HJ-NP-Z]
// 再匹配 [A-HJ-NP-Z] 1次,车牌里没有I 和O并且不能以数字开头
[A-HJ-NP-Z0-9]{4}
// 再匹配 [A-HJ-NP-Z0-9] 4次
[A-HJ-NP-Z0-9挂学警港澳]$
// 以[A-HJ-NP-Z0-9挂学警港澳]中任一字符结尾
五、其它
正则表达式学习导图
正则表达式在线可视
“测试是用来表明bug的存在而不是不存在” —— Edsger Dijkstra
猜你喜欢
- 2024-10-17 「B/S端开发」DevExtreme初级入门教程 - 支持TypeScript
- 2024-10-17 TypeScript 圈疯狂!支持手撸 WebAssembly?
- 2024-10-17 如何在 TypeScript 中使用装饰器(typescriptreact)
- 2024-10-17 何时使用 TypeScript:常见场景的详细介绍
- 2024-10-17 Vue3.x + TypeScript 的在线演示文稿(幻灯片)应用
- 2024-10-17 如何在 TypeScript 中创建自定义类型
- 2024-10-17 第一个 TypeScript 程序(typescript then)
- 2024-10-17 TypeScript 实践(typescript总结)
- 2024-10-17 「译」TypeScript终极指南一:安装与配置
- 2024-10-17 让人眼前一亮的 10 大 TypeScript 项目
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 360℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)