在JavaScript中,使用replace()、test()和exec()方法匹配字符串

2021-01-11 一都編程

01第一節:replace()方法概述

在#JavaScript#中,replace()方法可以在字符串中使用一個或多個字符替換為另外一個或多個字符,也可以替換為一個與正則表達式能夠匹配上的子字符串。

JavaScript正則表達式

注意:使用replace()方法只能將字符串中第一個被匹配到的字符串替換掉。

02第二節:使用正則表達式替換

這裡我們將舉一個例子,使用正則表達式且不區分大小寫將字符串中的 Microsoft 替換為 Google。

JavaScript核心代碼如下:

<script type="text/javascript">var str = "Hello Microsoft!";var res = str.replace(/Microsoft/i, "Google");document.write(res);</script>

replace()方法的參數說明如下:

第1個參數可以是查找的字符串,也可以是一個正則表達式,此例子中是一個正則表達式。第2個參數是最終要替換為的新字符串。該方法的功能是將第1個參數匹配到的值替換為第2個參數的值。返回的結果就是替換後的新字符串。現在將JS代碼運行一下結果:

圖1

從圖1的運行結果上看,已經將Hello Microsoft替換為Hello Google字符串。

在Replace()方法中,使用了正則表達式,則只要能在正則表達式上匹配到,則就會發生替換。

03第三節:使用字符串替換

replace()方法的第一個參數除了使用正則表達式之外,還可以使用字符串。

使用字符串替換的核心JavaScript代碼如下:

<script type="text/javascript">var str = "一都編程,每個知識就是一個案例。";var res = str.replace("案例", "例子");document.write(res);</script>

此JS代碼說明如下:

在replace()方法中第一個參數使用了一個字符串,這個字符串是「案例」。在replace()方法中第二個參數是最終要替換為的新字符串。這裡是「例子」。該代碼的含義是將「案例」替換為「例子」。將上面的核心代碼,運行一下結果:

圖2

對於replace()方法,返回的是替換後的整個字符串,也是需要的有意義的字符串。

04第四節:exec()方法

對於exec()方法,它不是字符串對象的方法,而是在正則表達式對象上使用的方法。

exec()方法的功能是用於查找一個字符串是否能在正則表達式中被匹配上,如果匹配上,則返回匹配到的結果,如果未匹配上,則返回null值。

現在舉例說明一下exec()方法的使用:

<script>var x = /a/g.exec("abc");console.log(x);</script>

此JS代碼說明如下:

/a/g是一個正則表達式,a是匹配模式,g是全局標誌。exec()是正則表達式上的一個方法。exec()方法的第一個參數是匹配的字符串。exec()方法返回的是一個Array類型數組:

運行後的結果如下:

圖3

在圖3中,返回的一個使用[]中括號組成的數組對象,匹配到的值是「a」,索引位置是0。表示匹配成功了。

如果我們直接使用document.write()方法輸出,則輸出的值就是a。

05第五節:test()方法

test()方法是在正則表達式上使用的,是一個用於測試字符串是否被匹配上的布爾結果。如果匹配上,則test()的結果是true,否則為false。

下面我們舉例說明一下test()方法具體是如何使用的,JS代碼如下:

<script>var x = /a/g.test("123a890a77777a");console.log(x);</script>

運行一下結果,打開Google Chrome瀏覽器的控制臺,查看一下結果:

圖4

從運行結果上看,test()方法返回的結果值是true,表示匹配成功了。

06第六節:修飾符標誌

在JavaScript中,在正則表達式上還可以使用了修飾符,也稱為標誌,共有3個,分別為:/i、/g、/m。

這3個修飾符的含義和使用方法如下所述。

6.1. /g修飾符和match()方法

/g修飾符,表示執行全局匹配,並不是所有與正則表達式相關的函數都支持全局匹配。

例如:search()方法就不支持/g修飾符,而match()和replace()方法就支持/g。如下JavaScript代碼如下:

<script type="text/javascript">var patt = /Yido/g;var str = "ABCYido 123Yido!";var res = str.match(patt);document.write(res);console.log(res);</script>

字符串match()方法使用正則表達式模式對字符串執行查找,並將包含查找的結果作為數組Array返回。

由於這裡使用了/g修飾符,所以返回的結果是多個,使用Array數組表示。

運行結果如下圖所示:

圖5

從圖5上看,返回的結果是一個數組,且全是匹配到的正確結果。

6.2. /m修飾符

/m表示多行查找,常用於^和$匹配中,^表示開頭,$表示結尾。

一般情況下,m和g配合使用才有意義。

<script type="text/javascript">var patt = /^Yido/g;var str = "Yido\nYido";var res = str.match(patt);document.write(res);</script>

這裡只使用了/g,運行一下結果:

圖6

從運行的結果上看,只查找到了一個結果。

現在我們修改一下正則表達式,使用/gm修飾符表示:

<script type="text/javascript">var patt = /^Yido/gm;var str = "Yido\nYido";var res = str.match(patt);document.write(res);</script>

這裡使用了/gm,執行全局多行查找,運行結果如下:

圖7

當在正則表達式上使用了/gm,則匹配上了2個結果,這就是/m的結果。

6.3. /i修飾符

/i修飾符表示不區分大小寫匹配,如A和a一樣匹配。

舉例說明,JS代碼如下:

<script type="text/javascript">var patt = /Ho/;var str = "123HOABC";var res = str.search(patt);document.write(res);</script>

運行結果如下:

圖8

從圖8的結果上看,返回的結果是-1,表示沒有匹配到,因為Ho與HO不能匹配,是區分大小寫匹配。

現在使用/i修飾符,執行區分大小寫匹配。JS代碼如下:

<script type="text/javascript">var patt = /Ho/i;var str = "123HOABC";var res = str.search(patt);document.write(res);</script>

運行結果如下:

圖9

此時,匹配到的結果是3,表示使用search()方法匹配到結果了,是按區分大小寫匹配上的。

相關焦點

  • 來一輪帶注釋的demo,徹底搞懂javascript中的replace函數
    javascript這門語言一直就像一位帶著面紗的美女,總是看不清,摸不透,一直專注伺服器端,也從來沒有特別重視過,直到最近幾年,javascript越來越重要,越來越通用。最近和前端走的比較近,藉此機會,好好鞏固一下相關知識點。
  • 使用JavaScript對正則表達式進行解析
    正則表達式是描述數據字符串中模式的一種方式。它們具有自己的語法,就像它們是自己的程式語言一樣,並且存在於大多數(如果不是全部)程式語言中的正則表達式進行交互的方法和方式。正則表達式的常見示例,例如給定的字符串是電子郵件地址還是電話號碼,或者可用於驗證密碼是否滿足一定的複雜性。可以使用正則表達式做什麼?
  • Javascript去除字符串中的點或其他符號
    今天在寫一個前端頁面的時候遇到了一個ip參數問題,我想把ip值中的點替換成 - 的形式。在前端上使用javascript進行操作的。測試了兩次沒有好用,程序直接把整個字符串都進行了替換,在考慮這個是為什麼呢?
  • 正則表達式A - 方法及特殊字符用法
    test方式:是用來檢測字符串中是否含有符合規則的子字符串。 不分大小寫全部獲取,這時輸出結果正確 除了test和match方法以外: seach:字符串方法,用於查找符合規則的子字符串的位置
  • 在JavaScript字符串的search()方法中,如何匹配正則表達式?
    正則表達式只是一種搜索模式或匹配模式。對於具體的字符串,需要經過正則表達式的計算後,形成一個值來判斷是否匹配上。正則表達式可簡單,可複雜,需要根據語法定義模式。在各個程式語言中,也會推出一些與正則表達式相關的輔助操作,如替找操作等。
  • JavaScript正則表達式「程式設計師培養之路第十二天」
    只不過是一個特殊的字符串主要實現對字符串的匹配、分割、查找、替換等操作 正則表達式的主要作用: 正則匹配: 可以測試字符串內容是否可以與正則相匹配 替換文本: 根據模式匹配字符串中的特定內容,進行替換、刪除 提取數據: 根據模式匹配從字符串中提取內容,生成數組
  • Python中使用re模塊實現正則表達式的匹配字符串操作
    導入re模塊的代碼比較簡單,它是這樣的:Import re今天的學習內容就是使用正則表達式匹配字符串。匹配字符串的實際意義就是查找、查詢字符串。在Python中,使用正則表達式匹配字符串,多數情況下,匹配成功後立即返回Match對象,不成功就返回None值。None值就是假值,這個不用多述。
  • JavaScript和Underscore.js在PHP中輸入方法 - 智能甄選
    JavaScript會見PHP該庫使用JavaScript和Underscore.js方法豐富了以下PHP類型:數組(包括順序和關聯),字符串,數字(整數,浮點數,NaN),函數(可調用),集合(Iterable,ArrayObject,Iterator)和布爾值。每個添加的方法都是表示類型的類的靜態方法。
  • JavaScript中的「黑話」
    (test){ alert('hello')}// aftertest && alert('hello')| 與 ||它們與&和&&使用方法很相似,不同的是它們表示的是邏輯或,因此使用|會進行按位或運算,而||會返回第一個Truthy值。
  • 傻傻分不清系列|Python中各種字符串處理方法
    其他字符串方法除了與字符串內建函數類似的方法以外,Pandas還有一些功能強大的字符串方法。(1) 向量化字符串的取值和切片操作很多同學會很疑惑,字符串對象可以進行取值和切片操作,但是Pandas對象中的字符串如何進行相同的操作?
  • JavaScript入門教程
    BOM結構圖3) 內容簡介windowBOM使javascript有能力與瀏覽器進行溝通,這個溝通從window對象開始,所有的window對象的屬性和方法自動成為javascript的全局變量和全局函數
  • 七天學會javascript第一天javascript介紹
    javascript介紹javascript數據類型javascript運算符javascript對象javascript Date對象javascript String對象JavaScript常用於實現一些前端效果。前些年流行的flash已經慢慢的被淘汰,js盛行起來。javascript :客戶端編程。javascript是由客戶端去解釋運行的。
  • 第41節 Document文檔節點-Javascript
    ;(在JS和CSS中,*就是匹配所有的通配符);var nodes = document.getElementsByTagName("*");console.log(nodes);會列印出頁面中所有的元素,按照它們出現的順序(沒有層次之分);在HTML中,該方法參數不需要區分大小寫,而在XML中,區分大小寫;Element類也定義了getElementsByTagName
  • 從String中移除空白字符的多種方式!?差別竟然這麼大!
    我們在日常開發時候會經常使用字符串做很多的操作。比如字符串的拼接、截斷、替換等。 這一篇文章,我們介紹一個比較常見又容易被忽略的一個操作,那就是移除字符串中的空格。 其實,在Java中從字符串中刪除空格有很多不同的方法,如trim,replaceAll等。
  • excel中的替代函數——replace和substitute函數的應用實例
    在excel中,常用的替換函數有replace和substitute函數,這兩個函數都可以替換單元格中的部分內容,功能和ctrl+H的功能類似,但是使用函數的目的一方面不會破壞原數據,另一方面與其他函數結合可以實現更多功能,對於substitute的參數=substitute(單元格,被替換的字符串,新字符串,指定替換第幾個),第四個參數可以省略,表示全部替換。
  • PHP正則表達式的快速學習方法
    /[a-z]/上述正則表達式將會與從a到z範圍內任何一個小寫字母相匹配。/[0-9]/上述正則表達式將會與從0到9範圍內任何一個數字相匹配。/([a-z][A-Z][0-9])+/上述正則表達式將會與任何由字母和數字組成的字符串,如 「aB0」 等相匹配。這裡需要提醒用戶注意的一點就是可以在正則表達式中使用 「()」 把字符串組合在一起。
  • JavaScript基礎-內置對象
    跟數學相關的運算(求絕對值,取整、最大值等)可以使用 Math 中的成員。,所以使用時需要實例化後才能使用其中具體方法和屬性。,對應的屬性值是該字符出現的次數字符串操作方法 字符串通過基本包裝類型可以調用部分方法來操作字符串,以下是部分操作方法:
  • R語言-stringr-字符串處理
    經常需要處理字符串。單雙引號R語言中字符串輸入時,可以使用單引號,也可以使用雙引號。轉義要在字符串中包含單引號或雙引號,可以使用\ 轉義它,即遇到特殊符號時需要轉義。,stringr中的函數都是向量化的,合併一個和多個字符都是同樣道理。