全文共4719字,预计学习时长14分钟
来源:Pexels
正则表达式已经成为程序员的必备工具。几乎所有流行的编程语言都支持正则表达式,原因如下:正则表达式为开发人员提供了强有力的工具,使之能快速执行需要几十行代码才能完成的任务。
本文主要研究前端开发人员经常要面对的六大文本处理和操作任务,并进一步了解正则表达式如何简化这一过程。但也只是触及了正则表达式潜力之皮毛。
1. 将URL转换为链接
假设文本中有一个或多个URL,且均不是HTML锚元素,因此不能单击。要将url自动转换为链接,首先需要找到URL,然后用指向URL的<a>的href属性将每个URL装入标签<a>…</a>:
const str = "Visit https://en.wikipedia.org/ for moreinfo.";str.replace(/\b(https?|ftp|file):\/\/\S+[\/\w]/g, '<ahref="$&">$&</a>');// => "Visit <ahref="https://en.wikipedia.org/">https://en.wikipedia.org/</a> for more info."
注意:使用该正则表达式时要小心,因为它不会匹配以标点符号结尾的URL,也可能无法匹配更复杂的URL。
下面来看看其原理:
· \b 在被称为“单词边界”的位置进行匹配。
· (https?|ftp|file) 匹配字符“https”,或“http”,或“ftp”,或“file”
· : 按字面意义匹配冒号字符
· \/ 按字面意义匹配正斜杠字符
· \S 匹配除空白之外的单个字符
· + 与前一项匹配一次或多次
· [\/\w] 匹配正斜杠或单词字符。如果没有这个,该正则表达式将匹配URL结尾的任何标点符号。
· g 命令正则表达式引擎匹配所有出现的项而不是在首次匹配后即停止
· $& 在replace()的第二个参数中,将匹配的子字符串插入到替换字符串中
2. 删除重复的单词
文章和教程包含不必要的重复单词并不少见。即使是专业作家也要为这些错误进行校对。在谷歌新闻上简单地搜索“the”,就会发现数百家知名新闻机构的文章中都有重复的“the”。幸运的是,正则表达式可以用一行代码修复这个问题:
const str