国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

javascript replace方法

codercao / 3253人閱讀

摘要:字符串方法還是比較強大的,做個筆記總結。美元符號連字符與正則表達式相匹配的子字符串。美元符號單引號位于匹配子字符串右側的文本。否則,第至個參數對應為捕獲組匹配項,倒數的兩個參數為匹配下標,原串。函數的匹配返回值,作為每次的匹配替換值。

javascript字符串方法replace還是比較強大的,做個筆記總結。

第一個參數

replace的第一個參數為字符串或者正則表達式。第二個參數為替換符,或者一個回調函數。

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

1.第二個參數為特殊符號

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

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

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

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

$$:表示$符號。

代碼示例:

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個分組,但是我想在匹配第一個分組的后面加個0,怎么辦?
也就是說,怎么讓js去做10和1的區分?

用事實說話:

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

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

這個有點為難了,但是卻難不倒函數啊!

2.第二個參數為函數

如果第二個參數傳入函數,那么,正則表達式沒有定義捕獲組的情況下,默認為三個參數,分別為:matched(匹配子串),匹配下標,原串(originalText)。否則,第2至n個參數對應為捕獲組匹配項,倒數的兩個參數為:匹配下標,原串(originalText)。

函數的匹配返回值,作為每次的匹配替換值

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"

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

javascript//因為有一個捕獲組,所以,需要再傳遞1參數 $1
"abcaabbccccffffdabcabcef".replace(/(w+)1+/g,function(matched,$1,index,originalText){
   return "#";
})
//"abc#####ef"

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78177.html

相關文章

  • 一道小小的題目引發對javascript支持正則表達式相關方法的探討

    摘要:返回值返回值根據傳入的參數類型和規則的不同,返回的內容不同,但總體來說,它是返回一個對象,而不是索引,如果沒匹配到任何符合條件的字符串,則返回。 本文發布在我的博客一道小小的題目引發對javascript支持正則表達式相關方法的探討許可協議: 署名-非商業性使用-禁止演繹 4.0 國際 轉載請保留原文鏈接及作者。 以前對于正則是非常懼怕的,因為看不懂和學不會。但最近項目中頻繁的...

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

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

    Coding01 評論0 收藏0
  • JavaScript 正則表達式筆記

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

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

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

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

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

    FrozenMap 評論0 收藏0

發表評論

0條評論

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