js中replace的用法

2021-09-05 01:20:23 字數 1676 閱讀 9397

replace方法的語法是:stringobj.replace(rgexp, replacetext) 其中stringobj是字串(string),reexp可以是正規表示式物件(regexp)也可以是字串(string),replacetext是替代查詢到的字串。。為了幫助大家更好的理解,下面舉個簡單例子說明一下

js**1.

終古」為「中國」

的值沒有改變

中國");

比我聰明的你,看完上面的例子之後,會發現第二個錯別字「終古」並沒有被替換成「中國」,我們可以執行二次replace方法把第二個錯別字「終古」也替換掉,程式經過改進之後如下:

js**1.

終古」為「中國」

的值沒有改變

中國");

中國");

我們可以仔細的想一下,如果有n的n次方個錯別字,是不是也要執行n的n次方replace方法來替換掉錯別字呢??呵,不用怕,有了正規表示式之後不用乙個錯別字要執行一次replace方法。。程式經過改進之後的**如下

js**1.

建立正則regexp物件

上面講的是replace方法最簡單的應用,不知道大家有沒有看懂??下面開始講稍微複雜一點的應用。。 

大家在一些**上搜尋文章的時候,會發現這麼乙個現象,就是搜尋的關鍵字會高亮改變顏色顯示出來??這是怎麼實現的呢??其實我們可以用正規表示式來實現,具體怎麼樣實現呢?簡單的原理請看下面的**

js**1.

上面的程式缺少互動性,我們再改進一下程式,實現可以自主輸入要查詢的字元

js**1.

人");

可能大家都會對$1這個特殊字元表示什麼意思不是很理解,其實$1表示的就是左邊表示式中括號內的字元,即第乙個子匹配,同理可得$2表示第二個子匹配。。什麼是子匹配呢??通俗點講,就是左邊每乙個括號是第乙個字匹配,第二個括號是第二個子匹配。。 

當我們要把查詢到的字元進行運算的時候,怎麼樣實現呢??在實現之前,我們先講一下怎麼樣獲取某乙個函式的引數。。在函式function的內部,有乙個arguments集合,這個集合儲存了當前函式的所有引數,通過arguments可以獲取到函式的所有引數,為了大家理解,請看下面的**

js**1.

alert("

alert("

alert("

//迴圈讀取所有的引數

看懂上面的程式之後,我們再來看下面乙個有趣的程式

js**1.

我們驚奇的發現,匿名函式竟然被執行了二次,並且在函式裡還帶有三個引數,為什麼會執行二次呢??這個很容易想到,因為我們寫的正規表示式是匹配單個數字的,而被檢測的字串剛好也有二個數字,故匿名函式被執行了二次。。在匿名函式內部的那三個引數到底是什麼內容呢??為了弄清這個問題,我們看下面的**。

js**1.

for(var i=0;ialert("個引數的值:"+arguments[i]);

經過觀察我們發現,第乙個引數表示匹配到的字元,第二個引數表示匹配時的字元最小索引位置(regexp.index),第三個引數表示被匹配的字串(regexp.input)。其實這些引數的個數,還會隨著子匹配的變多而變多的。弄清這些問題之後,我們可以用另外的一種寫法

js**1.

return ""+$1+""

人");

看了上面的程式,原來可以對匹配到的字元為所欲為。下面簡單舉乙個應用的例子

js**

1.

js中replace的用法

replace方法的語法是 stringobj.replace rgexp,replacetext 其中stringobj是字串 string reexp可以是正規表示式物件 regexp 也可以是字串 string replacetext是替代查詢到的字串。為了幫助大家更好的理解,下面舉個簡單例子...

js中replace的用法

replace 方法的語法是 stringobj.replace rgexp,replacetext 其中stringobj 是字串 string reexp 可以是正規表示式物件 regexp 也可以是字串 string replacetext 是替代查詢到的字串。為了幫助大家更好的理解,下面舉個...

js中replace的用法

replace方法的語法是 stringobj.replace rgexp,replacetext 其中stringobj是字串 string reexp可以是正規表示式物件 regexp 也可以是字串 string replacetext是替代查詢到的字串。為了幫助大家更好的理解,下面舉個簡單例子...