专业的编程技术博客社区

网站首页 > 博客文章 正文

15. TypeScript编程实践(入门篇):正则表达式

baijin 2024-10-17 07:55:23 博客文章 9 ℃ 0 评论

关注我,从零学习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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表