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

資訊專欄INFORMATION COLUMN

js--string/正則表達(dá)式replace方法詳解

lifefriend_007 / 2523人閱讀

摘要:方法是涉及到正則表達(dá)式中較為復(fù)雜的一個(gè)方法,嚴(yán)格上說(shuō)應(yīng)該是對(duì)象的方法。字符串中要替換的子串或正則第二個(gè)參數(shù)必需,一個(gè)字符串值,規(guī)定了替換文本或生成替換文本的函數(shù)。如果具有全局標(biāo)志,那么方法將替換所有匹配的子串。

replace方法是javascript涉及到正則表達(dá)式中較為復(fù)雜的一個(gè)方法,嚴(yán)格上說(shuō)應(yīng)該是string對(duì)象的方法。只不過牽扯到正則的時(shí)候比較多一些。需要我們靈活的使用。

語(yǔ)法: stringObj.replace(regexp/substr,replacement)

第一個(gè)參數(shù):必需。字符串中要替換的子串或正則RexExp;
第二個(gè)參數(shù):必需,一個(gè)字符串值,規(guī)定了替換文本或生成替換文本的函數(shù)。
返回值:注意它的返回值是一個(gè)新的字符串,并沒有更改原有字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之后得到的。
所以根據(jù)它的參數(shù)的不同分為很多種情況,以下一一對(duì)各種情況加以分析:

NO.1 兩個(gè)參數(shù)都是字符串
var str1 = "這是一段原始文本,需要替換的內(nèi)容"這要替換"!";
var newStr = str1.replace("這要替換","need replace");
console.log( newStr );    //輸出:   這是一段原始文本,需要替換的內(nèi)容"need replace"!

上面的例子中第二個(gè)參數(shù)字符串’need replace’,替換掉了第一個(gè)參數(shù)字符串’這要替換’。這是最簡(jiǎn)單的一種形式。

NO.2 第一個(gè)參數(shù)是正則,第二個(gè)參數(shù)是字符串
var str2 = "這是一段原始文本,需要替換的內(nèi)容"ac這要替換bb"!";
var newStr = str2.replace( /([a-z])+/g,"qqq" );
console.log( newStr );    //輸出:   這是一段原始文本,需要替換的內(nèi)容"qqq這要替換qqq"!

上面的例子字符串’qqq’,替換了正則匹配的內(nèi)容。如果 regexp 具有全局標(biāo)志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個(gè)匹配子串。

NO.3 第一個(gè)參數(shù)是正則,第二個(gè)參數(shù)是帶$符的字符串
var str3 = "這是一段原始文本,"3c這要替換4d"!";
var newStr = str3.replace( /([0-9])([a-z])/g,"$1" );
console.log( newStr );    //輸出:    這是一段原始文本,"3這要替換4"!";

上面的例子,$1表示regexp中的第一個(gè)子表示即([0-9])匹配單個(gè)數(shù)字,同理若是$2則表示第二個(gè)子表示即([a-z]);所以,’3c’這個(gè)匹配到的整體被第一個(gè)子表示說(shuō)表示的’3’替換,’4d’被第一個(gè)子表示匹配的數(shù)字’4’所替換。其他幾個(gè)同理可得:

(/([0-9])([a-z])/g,”$2″)—>////輸出: 這是一段原始文本,”c這要替換d”!"; (3c和4d被相應(yīng)的第二個(gè)子表示匹配出來(lái)的c和d替換)
(/([0-9])([a-z])/g,”$"”)—>////輸出: 這是一段原始文本,”這要替換d”!這要替換”!”!"; (3c被3c右側(cè)文本替換,4d右側(cè)是”!替換,所以出現(xiàn)倆次)

NO.4 第一個(gè)參數(shù)是正則,第二個(gè)參數(shù)函數(shù)
var str4 = "這是一段原始文本,需要替換的內(nèi)容"aa這要bbb替換ccccc"!";
var newStr = str4.replace( /[a-z]+/g,function ($0){
    var str = "";
    for (var i = 0; i < $0.length; i++) {
        str += "*";
    };
    return str;
} );
console.log( newStr );    //這是一段原始文本,需要替換的內(nèi)容"**這要***替換*****"!

上面的例子函數(shù)的第一個(gè)參數(shù)為匹配的regexp的整體,根據(jù)長(zhǎng)度函數(shù)返回值為相應(yīng)替換的文本;

NO.5 第一個(gè)參數(shù)是正則且有子表達(dá)式,第二個(gè)參數(shù)函數(shù)且?guī)в卸鄠€(gè)參數(shù)
var str5 = "這是一段原始文本,需要替換的內(nèi)容"3c這要替換4d"!";
var newStr = str5.replace( /([0-9])([a-z])/g,function (arg1,arg2,arg3,arg4,arg5){
 console.log( arg1 );
  console.log( arg2 );
  console.log( arg3 );
  console.log( arg4 );
  console.log( arg5 );
} );
//輸出:
3c
3
c
17
這是一段原始文本,需要替換的內(nèi)容"3c這要替換4d"!
4d
4
d
23
這是一段原始文本,需要替換的內(nèi)容"3c這要替換4d"!

上面的例子第一個(gè)參數(shù)arg1表示匹配的整體,arg2表示第一個(gè)子表達(dá)式,arg3表示第二個(gè)子表達(dá)式,接下來(lái)的參數(shù)arg4是一個(gè)整數(shù),聲明了表示子匹配在 stringObject 中出現(xiàn)的位置。最后一個(gè)參數(shù)是 stringObject 本身。

以上就是replace方法各種可能的情況。確實(shí)是一個(gè)需要深入理解的方法,不過確實(shí)也很強(qiáng)大的一個(gè)方法,值得深入研究!

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/82145.html

相關(guān)文章

  • 正則的貪婪,前瞻及屬性詳解

    摘要:正則的三種方法編譯正則表達(dá)式。返回找到的值,并確定其位置。規(guī)定匹配的類型。用于全局匹配,用于區(qū)分大小寫,用于全局區(qū)分大小寫的匹配。非貪婪匹配就是匹配到結(jié)果就好,就少的匹配字符。對(duì)象是否具有標(biāo)志。正則表達(dá)式的源文本。 對(duì)正則的深入學(xué)習(xí) 學(xué)習(xí)正則我們不能光看看幾個(gè)修飾符就可以了,因?yàn)檎齽t還有許多深入的知識(shí),下面我就來(lái)為大家扒一扒。。。showImg(https://segmentfault...

    pepperwang 評(píng)論0 收藏0
  • Javascript字符串常用方法詳解

    摘要:屬性里的字符串類似于數(shù)組,都是一個(gè)一個(gè)字符拼湊在一起組成的,因此可以用屬性取得字符串的長(zhǎng)度字符串常用的一些方法返回字符串的第個(gè)字符,如果不在之間,則返回一個(gè)空字符串。如果匹配成功,則返回正則表達(dá)式在字符串中首次匹配項(xiàng)的索引否則,返回。 字符串 字符串就是一個(gè)或多個(gè)排列在一起的字符,放在單引號(hào)或雙引號(hào)之中。 abc abc length屬性js里的字符串類似于數(shù)組,都是一個(gè)一個(gè)字...

    Wildcard 評(píng)論0 收藏0
  • 正則達(dá)式詳解及實(shí)戰(zhàn)

    摘要:如果你還沒正式開始正則表達(dá)式,請(qǐng)快速瀏覽跳過本章節(jié)。就是一個(gè)等同于但更簡(jiǎn)略的正則表達(dá)式。如果想查找全部,就要加標(biāo)識(shí)全局匹配規(guī)則正則表達(dá)式搜索字符串指定的值,從而去匹配字符串。正則表達(dá)式都是用來(lái)操作字符串的。 正則表達(dá)式 Create by jsliang on 2018-11-14 10:41:20 Recently revised in 2018-11-19 08:46:37 ...

    simon_chen 評(píng)論0 收藏0
  • 正則達(dá)式詳解 js

    摘要:程序員的正則表達(dá)式,醫(yī)生的處方和道士的鬼畫符,都是利器。其實(shí),正則表達(dá)式是一門語(yǔ)言,有自己獨(dú)特的語(yǔ)法,還擁有自己的解釋器。但是,如果正則表達(dá)式是動(dòng)態(tài)的,是根據(jù)變量來(lái)定義的,那么,只能使用第二種構(gòu)造函數(shù)的方式。 前言 作為一個(gè)程序員,要出去裝逼,手中必備的技能就是正則表達(dá)式。程序員的正則表達(dá)式,醫(yī)生的處方和道士的鬼畫符,都是利器。 在js中,很多的場(chǎng)景需要去使用到它(畢竟,js剛剛誕生的...

    fredshare 評(píng)論0 收藏0
  • 正則基礎(chǔ)詳解

    摘要:正則基礎(chǔ)詳解開頭,結(jié)尾匹配次或多次匹配次匹配次或次當(dāng)跟在后面時(shí),匹配模式是非貪婪的匹配確定是次,非負(fù)數(shù)匹配除了換行符以外的任何字符包括點(diǎn)本身小括號(hào)中的內(nèi)容只匹配不捕獲正向預(yù)查負(fù)向預(yù)查匹配或者匹配中任何一個(gè)匹配未包含的任意字符匹配指定范圍 正則基礎(chǔ)詳解 /^開頭,結(jié)尾$/ * 匹配0次或多次 + 匹配1-n次 ?匹配0次或1次; 當(dāng)?跟在 * + {n} {n,m} {n,} 后面時(shí)...

    YanceyOfficial 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<