TypeScript中正则表达式的用法及实际应用_javascript技巧

正则模式是固定的、已知的

不需要动态构建正则

需要更好的可读性

使用构造函数语法

在程序运行时(而非编写代码时)根据需要创建或修改正则表达式模式。

作用:使匹配不区分大小写

作用:查找所有匹配项,而不是在第一个匹配后停止

作用:使 ^$ 匹配每行的开头和结尾,而不是整个字符串的开头和结尾

const multiLineText = `First lineSecond lineThird line`;// 不使用 m 修饰符console.log(/^Second/.test(multiLineText)); // false//在整个字符串的开头位置尝试匹配 "Second"// 使用 m 修饰符console.log(/^Second/m.test(multiLineText)); // true

作用:正确处理大于 \uFFFF 的 Unicode 字符

const emojiText = '😊 笑脸';// 不使用 u 修饰符console.log(/^.$/.test(emojiText)); // false (无法正确匹配emoji)// 使用 u 修饰符console.log(/^.$/u.test(emojiText)); // true (正确匹配单个emoji字符)// 匹配特定Unicode字符console.log(/\p{Emoji}/u.test('😊')); // trueconsole.log(/\p{Script=Han}/u.test('汉')); // true (匹配汉字)

作用:使 . 匹配包括换行符在内的任意字符

const textWithNewline = 'Hello\nWorld';// 不使用 s 修饰符console.log(/Hello.World/.test(textWithNewline)); // false (.不匹配换行符)// 使用 s 修饰符console.log(/Hello.World/s.test(textWithNewline)); // true// 替代方案(不使用s修饰符)console.log(/Hello[\s\S]World/.test(textWithNewline)); // true

可以同时使用多个修饰符,顺序无关紧要:

// 不区分大小写 + 全局匹配 + 多行模式const regex = /^hello/gim;const text = `Hello worldhello everyoneHELLO there`;console.log(text.match(regex)); // ["Hello", "hello", "HELLO"]

const regex = /hello/;// test() - 测试是否匹配regex.test('hello world'); // true// exec() - 执行搜索,返回匹配结果或 nullconst result = regex.exec('hello world');console.log(result?.[0]); // "hello"

const str = 'Hello world, hello TypeScript';// match() - 返回匹配结果str.match(/hello/gi); // ["Hello", "hello"]// search() - 返回匹配位置的索引str.search(/world/); // 6// replace() - 替换匹配的子串str.replace(/hello/gi, 'Hi'); // "Hi world, Hi TypeScript"// split() - 使用正则分割字符串'one,two,three'.split(/,/); // ["one", "two", "three"]

确保匹配从字符串开头开始,防止前面有其他字符

邮箱地址必须包含一个@符号

正则表达式中的点号.

确保匹配直到字符串结束,防止后面有其他字符

核心的正则表达式是 /[?&]([^=#]+)=([^&#]*)/g,让我们分解它的每个部分:

function checkPasswordStrength(password: string): 'weak' | 'medium' | 'strong' { // 至少8个字符 if (password.length < 8) return 'weak'; // 弱: 只有字母或数字 if (/^[a-zA-Z]+$/.test(password) || /^\d+$/.test(password)) { return 'weak'; } // 中: 包含字母和数字 if (/^(?=.*[a-zA-Z])(?=.*\d).+$/.test(password)) { // 强: 包含字母、数字和特殊字符 if (/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[^a-zA-Z\d]).+$/.test(password)) { return 'strong'; } return 'medium'; } return 'weak';}

(?=pattern) 是正向先行断言的基本形式,表示:

这个表达式由两个正向先行断言组成,分别检查密码中是否包含字母和数字。

到此这篇关于TypeScript中正则表达式的用法及实际应用的文章就介绍到这了,更多相关TS中正则表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


本文地址: https://www.earthnavs.com/jishuwz/10b26c5c5c89009fb677.html
全局中部横幅
文章信息

AT导航(www.atdh.cn)为您提供免费网站收录,以及网址大全库的建立,旨在为用户提供高效便捷的网址收录和查询服务,同时提供最全的优秀名站导航。

链接99自动秒收录(lianjie99.cn)

链接99自动秒收录是一个各类信息免费发布的网站,可以发布外链交换,行业分类资讯信息,免费软文发布提交正规网址帮你进行快速收录同时支持网址自动收录.

Linux命令大全(手册)

专注于Linux命令大全与详解的在线命令查询网站,包含Linux命令手册、Linux命令详解、Linux命令学习与shell脚本编程大全等优质学习资料,准确,丰富,稳定,在技术之路上为您护航!

RSSHub

EverythingisRSSible🧡

Breaking

ViewthelatestnewsandbreakingnewstodayforU.S.,world,weather,entertainment,politicsandhealthatCNN.com.

网易新闻

新闻,新闻中心,包含有时政新闻,国内新闻,国际新闻,社会新闻,时事评论,新闻图片,新闻专题,新闻论坛,军事,历史,的专业时事报道门户网站

美国服务器

矩阵云提供服务器租用,服务器,vps,美国vps,美国服务器,云服务器租用,香港vps,美国服务器租用,香港服务器,美国云服务器,香港云服务器,香港云服务器,香港服务器租用,香港服务器,云服务器,美国服务器租用等服务器租用,高性价比服务器是我们一贯的追求

投融界|国内专业的一站式创业服务平台

投融界(trjcn.com)是中国专业的合作平台,为您提供合作,天使合作,债权合作等信息,拥有超百万的合作机构、企业与个人用户入驻。专为中小微企业解决合作难问题。投融界通过线上+线下、标准化+个性化的服务体系,为客户提供针对性的合作信息对接和项目撮配服务,帮助客户实现成功对接合作。

导航巴巴

导航巴巴(www.dh88.cn)目录导航,导航巴巴为用户提供丰富的分类目录导航网站,免费提交优质网站,更多优化您的网站,同时为用户提供网站分类目录检索、优秀网站导航服务。

超悦电脑

收藏特快网址是开放式网站分类目录导航,收录国内外、各行业优秀网站,旨在为用户提供网站分类目录检索、优秀网站参考、网站推广服务。