亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

javascript replace方法

codercao / 3320人閱讀

摘要:字符串方法還是比較強(qiáng)大的,做個(gè)筆記總結(jié)。美元符號連字符與正則表達(dá)式相匹配的子字符串。美元符號單引號位于匹配子字符串右側(cè)的文本。否則,第至個(gè)參數(shù)對應(yīng)為捕獲組匹配項(xiàng),倒數(shù)的兩個(gè)參數(shù)為匹配下標(biāo),原串。函數(shù)的匹配返回值,作為每次的匹配替換值。

javascript字符串方法replace還是比較強(qiáng)大的,做個(gè)筆記總結(jié)。

第一個(gè)參數(shù)

replace的第一個(gè)參數(shù)為字符串或者正則表達(dá)式。第二個(gè)參數(shù)為替換符,或者一個(gè)回調(diào)函數(shù)。

javascript"aadbbbd".replace("a","1")
//"1adbbbd"
"aadbbbd".replace(/a/,"1")
//"1adbbbd"
第二個(gè)參數(shù)

1.第二個(gè)參數(shù)為特殊符號

$1、$2、…、$99:與正則表達(dá)式中的第1~99個(gè)子表達(dá)式相匹配的文本。其實(shí)也可以在1-9之間,加上0前綴。
該符號針對的是分組,所以,沒有分組的話,會被當(dāng)做$n字符來做替換。

$&:(美元符號+連字符):與正則表達(dá)式相匹配的子字符串。

$`:(美元符號+切換技能鍵):位于匹配子字符串左側(cè)的文本。

$":(美元符號+單引號):位于匹配子字符串右側(cè)的文本。

$$:表示$符號。

代碼示例:

javascript"中國人民".replace(/(中國)/g,"($1)")
//"(中國)人民"
"cdab".replace(/(ab)/g,"$`")
//"cdcd"
"abcd".replace(/(ab)/g,"$"")
//"cdcd"
"abcdabcd".replace(/(ab)/g,"[$&]")
//"[ab]cd[ab]cd"
"$1$2wa,test".replace(/[a-zA-z]/g,"$$");
//"$1$2$$,$$$$"

如果有10個(gè)分組,但是我想在匹配第一個(gè)分組的后面加個(gè)0,怎么辦?
也就是說,怎么讓js去做10和1的區(qū)分?

用事實(shí)說話:

javascript"abcdefghijkkkk".replace(/(a)/g,"$10")
//"a0bcdefghijkkkk"

"abcdabcd".replace(/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/g,"$10")
//"jkkkk"

這個(gè)有點(diǎn)為難了,但是卻難不倒函數(shù)??!

2.第二個(gè)參數(shù)為函數(shù)

如果第二個(gè)參數(shù)傳入函數(shù),那么,正則表達(dá)式?jīng)]有定義捕獲組的情況下,默認(rèn)為三個(gè)參數(shù),分別為:matched(匹配子串),匹配下標(biāo),原串(originalText)。否則,第2至n個(gè)參數(shù)對應(yīng)為捕獲組匹配項(xiàng),倒數(shù)的兩個(gè)參數(shù)為:匹配下標(biāo),原串(originalText)。

函數(shù)的匹配返回值,作為每次的匹配替換值。

javascript"123".replace(/d/g,function(m1,m2,m3){
  return m3+"#"
})
//"123#123#123#"
"abcdeffffdabc12323abc".replace(/[abc]/g,function(matched,index,originalText){
  return matched+"~"
})
//"a~b~c~deffffda~b~c~12323a~b~c~"
"abcdeffffdabc12323abc".replace(/[abc]/g,function(matched,index,originalText){
  return "~"
})
//"~~~deffffd~~~12323~~~"
"abcdeabc".replace(/[ab]/g,function(matched,index,originalText){
  return "["+index+"]";
})
//"[0][1]cde[5][6]c"

接下來,我們來做個(gè)題目,要求對一個(gè)串的重復(fù)部分進(jìn)行替換處理,比如:abcabcaabbbdd,該串中abc緊接著abca后緊接著a,無論重復(fù)多少次,我們都用#替換掉。

javascript//因?yàn)橛幸粋€(gè)捕獲組,所以,需要再傳遞1參數(shù) $1
"abcaabbccccffffdabcabcef".replace(/(w+)1+/g,function(matched,$1,index,originalText){
   return "#";
})
//"abc#####ef"

如果只是保留非重復(fù)部分,也就是緊連接的aaa,只需要保留a即可。那么我們可以這么改:

javascript"abcaabbccccffffdabcabcef".replace(/(w+)1+/g,function(matched,$1,index,originalText){
   return $1;
})
//"abcabccdabcef"

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/78177.html

相關(guān)文章

  • 一道小小的題目引發(fā)對javascript支持正則表達(dá)式相關(guān)方法的探討

    摘要:返回值返回值根據(jù)傳入的參數(shù)類型和規(guī)則的不同,返回的內(nèi)容不同,但總體來說,它是返回一個(gè)對象,而不是索引,如果沒匹配到任何符合條件的字符串,則返回。 本文發(fā)布在我的博客一道小小的題目引發(fā)對javascript支持正則表達(dá)式相關(guān)方法的探討許可協(xié)議: 署名-非商業(yè)性使用-禁止演繹 4.0 國際 轉(zhuǎn)載請保留原文鏈接及作者。 以前對于正則是非常懼怕的,因?yàn)榭床欢蛯W(xué)不會。但最近項(xiàng)目中頻繁的...

    Scholer 評論0 收藏0
  • 來一輪帶注釋的demo,徹底搞懂javascript中的replace函數(shù)

    摘要:對應(yīng)于上述的,等。匹配到的子字符串在原字符串中的偏移量。插入當(dāng)前匹配的子串右邊的內(nèi)容。 javascript這門語言一直就像一位帶著面紗的美女,總是看不清,摸不透,一直專注服務(wù)器端,也從來沒有特別重視過,直到最近幾年,javascript越來越重要,越來越通用。最近和前端走的比較近,借此機(jī)會,好好鞏固一下相關(guān)知識點(diǎn)。 1.初識replace 在js中有兩個(gè)replace函數(shù) 一個(gè)是lo...

    Coding01 評論0 收藏0
  • JavaScript 正則表達(dá)式筆記

    摘要:元字符是在正則表達(dá)式中有特殊含義的非字母字符。五前瞻后顧后瞻正則表達(dá)式從文本頭部向尾部開始解析,文本尾部方向,稱為前。前瞻就是在正則表達(dá)式匹配到規(guī)則的時(shí)候,向前檢查是否符合斷言,后顧后瞻方向相反。替換與正則表達(dá)式匹配的子串。 Regular Expression 使用單個(gè)字符串來描述、匹配一系列符合某個(gè)句法規(guī)則的字符串。按某種規(guī)則去匹配符合條件的字符串。不同編程語言的正則表達(dá)式略有不同...

    jeffrey_up 評論0 收藏0
  • 100個(gè)直接可以拿來用的JavaScript實(shí)用功能代碼片段(重新排版+目錄瀏覽)

    摘要:來自本文原作者發(fā)表于由于瀏覽器及的快速迭代發(fā)展,以下部分代碼功能可能會失效過時(shí)或者不夠優(yōu)雅還請看官自行斟辨。重新使用排版,且自動生成了目錄方便瀏覽。 來自:http://www.cnblogs.com/wxydigua/p/3314274.html 本文原作者發(fā)表于:2013-09-11, 由于瀏覽器及ECMAScript的快速迭代發(fā)展,以下部分代碼功能可能會失效、過時(shí)或者不夠優(yōu)雅, ...

    willin 評論0 收藏0
  • JavaScript必會技能——正則表達(dá)式

    摘要:語法參數(shù)必填項(xiàng),字符串或正則表達(dá)式,該參數(shù)指定的地方分割可選該參數(shù)指定返回的數(shù)組的最大長度,如果設(shè)置了該參數(shù),返回的子字符串不會多于這個(gè)參數(shù)指定的數(shù)組。該數(shù)組通過在指定的邊界處將字符串分割成子字符串。把正則表達(dá)式拆分成小表達(dá)式。 正則表達(dá)式是什么 RegExp 對象表示正則表達(dá)式,它是對字符串執(zhí)行模式匹配的強(qiáng)大工具。 為什么使用正則表達(dá)式 測試字符串內(nèi)的模式。例如,可以測試輸入字符串...

    FrozenMap 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<