精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

超好用的6種正則表達式,前端開發人員必知

開發 前端
正則表達式已經成為程序員的必備工具。幾乎所有流行的編程語言都支持正則表達式,原因如下:正則表達式為開發人員提供了強有力的工具,使之能快速執行需要幾十行代碼才能完成的任務。

 正則表達式已經成為程序員的必備工具。幾乎所有流行的編程語言都支持正則表達式,原因如下:正則表達式為開發人員提供了強有力的工具,使之能快速執行需要幾十行代碼才能完成的任務。

[[315831]]

本文主要研究前端開發人員經常要面對的六大文本處理和操作任務,并進一步了解正則表達式如何簡化這一過程。但也只是觸及了正則表達式潛力之皮毛。

1. 將URL轉換為鏈接

假設文本中有一個或多個URL,且均不是HTML錨元素,因此不能單擊。要將url自動轉換為鏈接,首先需要找到URL,然后用指向URL的的href屬性將每個URL裝入標簽

 

  1. 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”。幸運的是,正則表達式可以用一行代碼修復這個問題:

 

  1. const str = "This thissentence has has double words.";str.replace(/\b(\w+)\s+\1\b/gi, '$1');//=> "This sentence has double words." 
  • \b 在“單詞邊界”的位置進行匹配(后跟或前接ASCII字母、數字或下劃線的位置)。
  • \w 匹配單詞字符(ASCII字母、數字或下劃線)
  • + 與前一項匹配一次或多次
  • \s 匹配空白字符
  • + 將前一項匹配一次或多次,以便能夠檢測到含多個空白字符的重復單詞
  • \1 反向引用和匹配的文本是否與第一對括號中匹配的文本相同
  • \b 匹配單詞邊界
  • g 命令正則表達式引擎匹配所有出現的項而不是在首次匹配后即停止
  • i 使搜索不區分大小寫(忽略大小寫差異)
  • $1 在replace()的第二個參數中插入第一對括號中匹配的文本

3. 從文件名中去除無效字符

在提供要下載的文件時,文件名中不應包含某些字符。例如,在Windows操作系統中,以下字符在文件名中無效,應刪除:

  • <(小于)
  • > (大于)
  • : (冒號)
  • “ (雙引號)
  • / (正斜杠)
  • \ (反斜杠)
  • | (豎線)
  • ? (問號)
  • * (星號)

使用正則表達式刪除無效字符非常簡單。來看一個例子:

 

  1. const str ="https://en.wikipedia.org/";str.replace(/[<>|:"*?\\/]+/g,''); // =>"httpsen.wikipedia.org" 

[], 被稱為字符類,可匹配方括號之間的一個字符。因此,通過將所有無效字符放在其中并在正則表達式的末尾添加一個全局(g)標志,可從字符串中有效刪除這些字符。

注意,在字符類中,反斜杠具有特殊含義,必須用另一個反斜杠進行轉義:\\。操作符+重復字符類,以便同時替換無效字符序列,這有助于提升性能。可省略它而不影響結果。

請記住,除非想用另一個字符替換無效字符,否則replace()方法的第二個參數必須是空字符串。

還有幾個保留的名稱被Windows內部用于各種任務,不允許作為文件名。保留的名稱如下:

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5,COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, andLPT9

若要去掉保留的名稱,請運行以下代碼:

 

  1. str.replace(/^(CON|PRN|AUX|NUL|COM1|COM2|COM3|COM4|COM5|COM6|COM7|COM8|COM9|LPT1|LPT2|LPT3|LPT4|LPT5|LPT6|LPT7|LPT8|LPT9)$/i,'file'); 

基本上,這段代碼命令正則表達式引擎替換str中的字符(若其構成由豎線字符(|)分隔的單詞之一)。本例中不能使用空字符串作為第二個參數,因為文件沒有名稱。

注意,若字符串包含任何附加字符,則不會被替換。例如,“con”會被替換,但“concord”不會,這是一個有效的文件名。這是通過在正則表達式中使用^和$來實現的。^匹配字符串的開頭,可確保在要匹配的字符串之前沒有其他字符。$匹配字符串的結尾。

也可以使用字符類采用更緊湊的方式編寫該正則表達式:

 

  1. str.replace(/^(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$/i,'file'); 

[1–9]匹配1-9的數字

4.用單個空白替換多個空白

當呈現網頁時,重復的空白字符將顯示為單個空白。然而,有時需要清理用戶輸入或其他數據,并將重復的空白替換為單個空白。下面將演示如何使用正則表達式實現這一點:

 

  1. const str = " My opinions may have changed, but not the fact that I'mright."; // Ashleigh Brilliantstr.replace(/\s\s+/g,' ');// => " My opinions may have changed, but not the fact that I'mright." 

該正則表達式僅包含兩個元字符、一個操作符和一個標記:

  • \s 匹配單個空白字符,包括ASCII空格、制表符、換行符、回車符、垂直制表符和表單換行符
  • \s 再次匹配單個空白字符
  • + 與前一項匹配一次或多次
  • g 命令正則表達式引擎匹配所有出現的項而不是在首次匹配后即停止

結果是替換所有重復至少兩次的空白字符。請注意,上面示例中的結果在開頭仍然有一個應刪除的空白字符。為此,只需將trim()函數添加到語句的末尾:

 

  1. str.replace(/\s\s+/g, '').trim();// => "My opinions may have changed, but not the fact thatI'm right." 

請記住,此代碼使用空格(U+0020)字符替換任何類型的空白字符,包括ASCII空格、制表符、換行符、回車符、垂直制表符和表單換行符。因此,如果回車緊跟在制表符之后,那么它們將被一個空格代替。若這不是目的所在,只想替換相同類型的空白,可用下面的代碼代替:

 

  1. str.replace(/(\s)\1+/g,'$1').trim(); 

\1 是一個反向引用,并與第一對括號(\s)中匹配的字符匹配。可在replace()的第二個參數中使用$1替換它們,它插入了在括號中匹配的字符。

5. 尋找包含特定單詞的句子

假設你想匹配文本中包含特定單詞的所有句子。或者你想在搜索結果中突出顯示這些句子,又或者想將其從文本中刪除。正則表達式/[^.!?]*\bword\b[^.!?]*.?/gi可實現以上需求。以下是其原理:

  1. const str = "The apple treeoriginated in Central Asia. It is cultivated worldwide. Apple matures in latesummer or autumn."
  2. // en.wikipedia.org/wiki/Apple// find sentences that contain the word"apple" 
  3. str.match(/[^.!?]*\bapple\b[^.!?]*.?/gi);// => ["The apple treeoriginated in Central Asia.""Apple matures in late summer orautumn."

下文將逐步研究該正則表達式:

  • [^.!?] 匹配所有除 ., !,及?以外的字符
  • * 匹配前一項的零個或多個序列
  • \b 在“單詞邊界”的位置進行匹配(后跟或前接ASCII字母、數字或下劃線的位置)。
  • apple 按字面匹配字符(因為它區分大小寫,所以將i標記添加到該正則表達式的末尾)
  • \b 匹配單詞邊界
  • [^.!?] 匹配所有除 .,!,及?以外的字符
  • * 匹配前一項的零個或多個序列
  • 匹配除換行符以外的所有字符
  • ? 匹配前一項出現零次或一次的項
  • g 命令正則表達式引擎匹配所有出現的項而不是在首次匹配后即停止
  • i 使搜索不區分大小寫

提示:使用Bit (Github)從代碼庫中“獲取”組件,逐步構建UI組件庫。與團隊一起使用該UI組件庫,以獲得一致UI、快速開發和無限合作。輕松將可重用組件導入至任何項目中,使用并更新以實現跨存儲庫同步更改。

 

超好用的6種正則表達式,前端開發人員必知

 

示例:搜索在bit.dev上共享的React組件

6. 將用戶輸入限制為字母數字字符

網頁開發時的一個常見任務是將用戶輸入限制為字母數字字符(A - z、A - z和0-9)。使用正則表達式實現這個任務非常簡單:使用一個字符類來定義允許的字符范圍,然后在其上添加一個量詞來指定可以重復的字符的數量:

 

  1. const input1 = "John543"
  2.  
  3. const input2 = ":-)";/^[A-Z0-9]+$/i.test(input1); // → true 
  4.  
  5. /^[A-Z0-9]+$/i.test(input2); // →false 

 

注意:該正則表達式僅適用于英語,不匹配重音字母或其他語言的字母。

下面是其原理:

  • ^ 匹配字符串的開頭。確保在要匹配的字符串之前沒有其他字符。
  • [A-Z0–9] 匹配A和Z之間的字符,或0和9之間的字符。由于這是區分大小寫的,可將i標記添加到該正則表達式的末尾。或者,可使用無標記的[A-Za-z0-9]。
  • + 與前一項匹配一次或多次,因此,輸入項必須至少有一個非空白字母數字字符;否則,匹配失敗。若要使字段為可選的,則可以使用*量詞,該量詞與前一項匹配的次數須大于0。
  • $ 匹配字符串的末尾.

花時間掌握正則表達式絕對是一項值得的投資,因為它將有助于解決編碼時遇到的各種問題。

希望這篇文章對你有用!

責任編輯:華軒 來源: 今日頭條
相關推薦

2021-08-07 15:38:07

開發Java工具

2019-11-29 16:25:00

前端正則表達式字符串

2018-04-17 12:51:29

Java常用類庫API

2018-09-27 15:25:08

正則表達式前端

2017-01-12 19:47:59

Android秘訣技巧和資源

2015-12-07 10:03:40

實用PHP表達式

2020-09-04 09:16:04

Python正則表達式虛擬機

2024-09-14 09:18:14

Python正則表達式

2010-07-19 16:11:20

Perl正則表達式

2010-07-14 09:24:22

Perl正則表達式

2009-06-09 09:00:09

java正則表達式

2010-03-25 18:25:36

Python正則表達式

2009-08-07 14:24:31

.NET正則表達式

2016-11-10 16:21:22

Java 正則表達式

2009-09-16 17:15:57

正則表達式引擎

2022-01-04 11:35:03

Linux Shel正則表達式Linux

2023-09-13 08:12:45

2022-03-28 06:19:14

正則表達式開發

2017-05-12 10:47:45

Linux正則表達式程序基礎

2021-01-27 11:34:19

Python正則表達式字符串
點贊
收藏

51CTO技術棧公眾號

免费一级黄色录像| 中文字幕日韩在线播放| 91视频 - 88av| 亚洲欧美日韩成人在线| 免费视频最近日韩| 欧美精品少妇videofree| 播放灌醉水嫩大学生国内精品| 四虎影院在线域名免费观看| 麻豆国产精品一区二区三区 | 亚洲最大av| 日韩精品在线免费观看| 国产一级免费大片| 狠狠狠综合7777久夜色撩人 | 美国黄色一级视频| av毛片在线看| 久久国产精品区| 国内精久久久久久久久久人| av影片在线播放| 国产 日韩 欧美一区| 亚洲人成精品久久久久久| 精品无人区一区二区三区竹菊 | 久久成人免费日本黄色| 91成人在线观看国产| 九九热最新地址| 97成人超碰| 久久精品夜色噜噜亚洲aⅴ| 亚洲一区二区在线播放| 亚洲第一区av| 亚洲女同在线| 色综合久久天天综线观看| av在线播放中文字幕| 偷拍亚洲精品| 精品国产91久久久久久久妲己| 天堂av2020| 欧美日韩国产网站| 色狠狠综合天天综合综合| 欧美综合在线播放| av福利在线导航| 亚洲综合激情网| 日本免费黄色小视频| 在线视频三区| 国产精品嫩草影院com| 91精品国产综合久久香蕉922| 久久久精品视频网站| 日韩图片一区| 97视频色精品| 日本学生初尝黑人巨免费视频| 欧美69视频| 不卡av在线网站| 国产午夜手机精彩视频| 中文精品久久| 免费91在线视频| 欧美激情图片小说| 欧美福利电影在线观看| 欧美www在线| 青青草国产在线观看| 欧美在线观看天堂一区二区三区| 久久久99久久精品女同性| 久久爱一区二区| 欧美三级午夜理伦三级中文幕| 久久婷婷国产麻豆91天堂| 少妇人妻丰满做爰xxx| 欧美精品1区| 国内精品一区二区三区| 成人午夜视频精品一区| 久久久水蜜桃av免费网站| 日韩一区二区在线看| 国产黄视频在线| 中国字幕a在线看韩国电影| 一本到不卡免费一区二区| 热久久精品国产| 香蕉久久aⅴ一区二区三区| 亚洲精品视频在线| 日韩视频在线视频| 一根才成人网| 欧美日韩一区二区三区视频| 中文字幕日韩久久| 天天干,天天干| 国产精品久久777777毛茸茸| 亲爱的老师9免费观看全集电视剧| 欧产日产国产69| 免费成人在线影院| 亚洲自拍偷拍视频| 丝袜视频国产在线播放| 国产精品无码永久免费888| 国产盗摄视频在线观看| 成av人片在线观看www| 一本色道久久综合亚洲aⅴ蜜桃 | 四虎永久免费网站| av在线私库| 欧美午夜电影网| 国产一级二级av| 国内黄色精品| 欧美猛交免费看| 四虎影院在线免费播放| 国产精品77777| 欧美亚洲爱爱另类综合| 亚洲区欧洲区| 在线观看亚洲成人| 被灌满精子的波多野结衣| 在线观看特色大片免费视频| 欧美久久久久久久久中文字幕| 国产精品扒开腿做爽爽爽a片唱戏| 国产在线观看91一区二区三区 | 亚洲.欧美.日本.国产综合在线| 黄色小网站在线观看| 国产午夜精品一区二区三区嫩草| 精品少妇人妻av一区二区| 久久影院午夜精品| 日韩一区二区三区在线观看| av网站免费在线看| 亚洲精品国产精品粉嫩| www.xxxx精品| 日韩中文字幕高清| 成人精品一区二区三区四区 | 99re66热这里只有精品3直播 | 成人午夜在线观看| 亚洲aaaaaaa| 一区二区三区四区激情| 91人人澡人人爽人人精品| 久久亚洲黄色| 欧美日本精品在线| 国产精品久久久久久久久久久久久久久久 | 精品国产一区二区三区四区| 亚洲精品日韩在线| 欧美精品一区二区成人| 久久国产精品99久久人人澡| 免费99视频| av2020不卡| 日韩精品一区二区三区在线播放 | 亚洲美女淫视频| 中文字幕 91| 国产精品午夜一区二区三区| 68精品久久久久久欧美| 欧美 日韩 国产 成人 在线| va亚洲va日韩不卡在线观看| 400部精品国偷自产在线观看 | 欧美偷拍一区二区| 法国空姐电影在线观看| 午夜一区不卡| 久久久久资源| 涩涩在线视频| 日韩高清免费观看| 波多野结衣视频网站| 国产激情偷乱视频一区二区三区| 91爱爱小视频k| 午夜视频久久久久久| 人妻互换免费中文字幕| 国产日韩一区二区三免费高清| 最新国产成人av网站网址麻豆| 在线不卡av电影| 超碰成人久久| 国产成人精品免费久久久久| 久久经典视频| 91久久线看在观草草青青| 粉嫩av蜜桃av蜜臀av| 天堂va蜜桃一区二区三区| 清纯唯美一区二区三区| 性欧美gay| 中文字幕免费国产精品| 国产一区二区视频免费观看| 亚洲男人天堂av网| 91porn在线| 亚洲视频1区| 日韩av大全| 亚洲电影二区| 欧美国产日韩一区二区| 91九色国产ts另类人妖| 日本乱码一区二区三区不卡| 亚洲人成人99网站| 怡春院在线视频| 亚洲欧美激情一区二区| 午夜不卡久久精品无码免费| 天堂成人国产精品一区| 久久久一二三四| 成人涩涩网站| 日本精品视频在线播放| 黄色在线播放网站| 精品sm捆绑视频| 成人免费一级片| 最新国产精品久久精品| www.88av| 亚洲h色精品| aa日韩免费精品视频一| 女海盗2成人h版中文字幕| 在线观看国产精品91| 99久久精品免费看国产交换| 五月开心婷婷久久| 日韩欧美黄色网址| 国产成人自拍网| 久久精品香蕉视频| 综合久久婷婷| 日本10禁啪啪无遮挡免费一区二区| 欧美极品在线| 欧美激情女人20p| 国产在线视频资源| 日韩午夜小视频| 丰满少妇xoxoxo视频| 亚洲女人的天堂| 丁香花五月婷婷| 成人激情综合网站| 久久久久免费精品| 综合久久婷婷| 亚洲精品成人三区| xvideos.蜜桃一区二区| 国产欧美一区二区三区久久| 成人爽a毛片免费啪啪动漫| 色香阁99久久精品久久久| 亚洲精品一区二区三区不卡| 欧美日韩一区二区不卡| 亚洲欧美偷拍视频| 夜夜嗨av一区二区三区| 天美传媒免费在线观看| 久久综合狠狠综合| 亚洲麻豆一区二区三区| 国产一区二区三区四区五区美女 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 性色av无码久久一区二区三区| 久久综合视频网| 又黄又色的网站| 狠狠色狠狠色综合| 黄色在线视频网| 久久久蜜桃一区二区人| 男人天堂1024| 亚洲深夜激情| 乱妇乱女熟妇熟女网站| 激情婷婷久久| www.好吊操| 欧美三级特黄| 大西瓜av在线| 好看的日韩av电影| 国产精品久久久久久久天堂第1集| 久久av影院| 国产精品99久久久久久久久| 在线精品亚洲欧美日韩国产| 2019国产精品自在线拍国产不卡| 日本高清在线观看视频| 久久av中文字幕| 成人在线网址| 久久国产精品久久国产精品| 麻豆传媒在线免费看| 北条麻妃一区二区三区中文字幕| 91在线导航| 日韩中文在线中文网三级| 午夜免费福利在线观看| 欧美一级精品大片| 99久久精品国产一区色| 日韩欧美国产电影| 亚洲第一成年人网站| 日韩一区二区三区在线| 亚洲欧美另类一区| 亚洲国产精品久久久| 天堂av资源在线| 欧美婷婷六月丁香综合色| 日本一本在线观看| 欧美伊人久久大香线蕉综合69| 四虎影院在线免费播放| 欧美亚一区二区| 亚洲无码久久久久| 3d动漫精品啪啪一区二区竹菊| 国产色综合视频| 精品剧情v国产在线观看在线| 欧美 日韩 国产 在线| 亚洲美女视频网| 浮生影视网在线观看免费| www.欧美三级电影.com| 在线中文免费视频| 97色在线观看| 久久青草免费| 波多野结衣一区二区三区在线观看| 一区二区视频| 麻豆av福利av久久av| 日韩免费高清| www.好吊操| 日韩电影一区二区三区| 在线播放黄色av| 波多野结衣在线aⅴ中文字幕不卡| xxx在线播放| 亚洲视频 欧洲视频| 一级片免费网址| 欧美日韩在线观看一区二区| 丰满少妇被猛烈进入| 亚洲欧美在线看| av毛片在线| 国产不卡视频在线| 日韩在线观看一区二区三区| 欧美久久在线| 午夜视频精品| 亚洲中文字幕久久精品无码喷水| 国产主播一区二区三区| av网站有哪些| 亚洲人吸女人奶水| 国产高清中文字幕| 911精品产国品一二三产区| 色香蕉在线视频| 日韩中文综合网| 麻豆理论在线观看| 亚洲综合精品一区二区| 久操精品在线| 97超碰国产精品| 免费的国产精品| 日韩人妻一区二区三区| 一区二区三区日韩精品视频| japanese国产在线观看| 亚洲精品v欧美精品v日韩精品| 免费网站黄在线观看| 69久久夜色精品国产69乱青草| 日韩成人精品一区二区三区| 久久伊人一区| 欧美片第1页综合| 簧片在线免费看| 久久婷婷久久一区二区三区| 免费人成年激情视频在线观看| 欧美又粗又大又爽| 色视频在线看| 国产最新精品视频| 精品一区二区三区免费看| 亚洲精品国产精品久久| 免费日韩一区二区| xxxxxx黄色| 亚洲夂夂婷婷色拍ww47| 国产精品一级视频| 中文字幕在线精品| 亚洲第一会所| 欧美婷婷久久| 蜜桃av综合| 给我看免费高清在线观看| 亚洲444eee在线观看| 精品人妻无码一区二区三区蜜桃一 | 国产福利在线| 欧美有码在线观看| 久久精品66| 国产高清av在线播放| 懂色av一区二区三区免费观看 | 女人香蕉久久**毛片精品| 五月天激情播播| 国产精品久久久久久户外露出| 日本黄色中文字幕| 国产一区二区激情| 电影久久久久久| 神马影院午夜我不卡| 日韩av一级电影| 天天摸日日摸狠狠添| 欧美亚洲国产bt| 午夜伦理在线| 成人精品久久av网站| 91精品综合| 国产乱国产乱老熟300部视频| 亚洲不卡一区二区三区| 欧美一级淫片aaaaaa| 午夜精品久久久久久久久久久久久| 成人春色在线观看免费网站| 国产婷婷一区二区三区| 91丨九色丨尤物| 黄色片视频免费| 在线观看日韩av| 成人永久在线| 黄色网在线视频| www.在线成人| 国产性生活视频| 色噜噜国产精品视频一区二区| 日韩黄色三级在线观看| 懂色av粉嫩av蜜臀av| 国产91富婆露脸刺激对白| 日韩特黄一级片| 国产一区二区三区久久精品| 99久久久国产| 91免费黄视频| 日本一区二区免费在线| 国产精品久久久久久久一区二区| 久久国产精品久久精品| 久久久久观看| 手机看片一级片| 亚洲综合图片区| 欧美成熟毛茸茸| 91九色单男在线观看| 极品中文字幕一区| a级在线免费观看| 日韩三级.com| 高清不卡av| 超碰人人爱人人| 久久精品日产第一区二区三区高清版| 亚洲特级黄色片| 国语自产精品视频在线看一大j8| 沈樵精品国产成av片| 一级黄色免费毛片| 欧美性生交xxxxx久久久| 免费网站免费进入在线| 国内精品久久国产| 久久国产综合精品| 精品成人久久久| 久久精品影视伊人网| 日韩成人av在线资源| 久久久久久综合网| 丁香五六月婷婷久久激情| 韩国av网站在线| 欧美日韩最好看的视频| 成人午夜精品一区二区三区| 综合久久中文字幕| 91大神福利视频在线|