欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript 正則表達(dá)式觸發(fā)函數(shù)進(jìn)行高級(jí)替換

 更新時(shí)間:2010年03月15日 11:33:10   作者:  
如果在正則表達(dá)式中定義了子匹配,那么參數(shù)的長(zhǎng)度會(huì)隨著子匹配的個(gè)數(shù)改變,如果沒(méi)有定義子匹配,那么長(zhǎng)度是固定的。
一般情況下我們可能會(huì)用到正則表達(dá)式去替換文本:
復(fù)制代碼 代碼如下:

var a = "abc123aXc";
a.replace(/a.c/g, 'ZZ');

我們可以用函數(shù)來(lái)定義高級(jí)替換,而不是一個(gè)簡(jiǎn)單的字符串。比如:

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]

我們看到,當(dāng)正則表達(dá)式每產(chǎn)生一次匹配時(shí),會(huì)觸發(fā)替換函數(shù)并將匹配字符串作為參數(shù)傳到替換函數(shù)中。當(dāng)正則表達(dá)式中定義了子匹配(submatch)時(shí),甚至可以做更高級(jí)的事情,替換函數(shù)可以根據(jù)不同的子匹配來(lái)作出相應(yīng)的處理。比如我們要對(duì)網(wǎng)頁(yè)中的某些指定的實(shí)體代碼轉(zhuǎn)化為特殊字符:
[code]
var entity = {
quot: '"',
lt: '<',
gt: '>'
};
function deentityify(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
var a = "<a href="http://jb51.net/">";
a.replace(/&([^&;]+);/g, deentityify);

執(zhí)行結(jié)果為:

<a >
如果我們知道了傳遞參數(shù)的規(guī)則就會(huì)很清楚其原理了。事實(shí)上,如果在正則表達(dá)式中定義了子匹配,那么參數(shù)的長(zhǎng)度會(huì)隨著子匹配的個(gè)數(shù)改變,如果沒(méi)有定義子匹配,那么長(zhǎng)度是固定的。傳參的規(guī)則為:

匹配字符串本身
所有子匹配(如果定義了)
匹配字符串在原始字符串中的位置

相關(guān)文章

  • 原生JS實(shí)現(xiàn)表單checkbook獲取已選擇的值

    原生JS實(shí)現(xiàn)表單checkbook獲取已選擇的值

    本文為大家介紹下采用原生JS實(shí)現(xiàn)從一個(gè)表單checkbox獲取到已選中的數(shù)據(jù)值,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助
    2013-07-07
  • JavaScript無(wú)提示關(guān)閉窗口(兼容IE/Firefox/Chrome)

    JavaScript無(wú)提示關(guān)閉窗口(兼容IE/Firefox/Chrome)

    JavaScript無(wú)提示關(guān)閉當(dāng)前頁(yè)面窗口,兼容IE/Firefox/Chrome (Close the current page window without confirm by JavaScript, support all browsers)
    2008-11-11
  • 一篇文章告訴你如何用事件委托實(shí)現(xiàn)JavaScript留言板功能

    一篇文章告訴你如何用事件委托實(shí)現(xiàn)JavaScript留言板功能

    這篇文章主要為大家介紹了事件委托實(shí)現(xiàn)JavaScript留言板功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • 教你如何使用?JavaScript?讀取文件

    教你如何使用?JavaScript?讀取文件

    這篇文章主要介紹了如何使用?JavaScript?讀取文件,您可以使用?JavaScript?File?API?加載選定文件的內(nèi)容,本節(jié)介紹?File?API?的基本用法,需要的朋友可以參考下
    2022-06-06
  • Lottie動(dòng)畫前端開發(fā)使用技巧

    Lottie動(dòng)畫前端開發(fā)使用技巧

    這篇文章主要為大家介紹了Lottie動(dòng)畫前端開發(fā)使用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Javascript 兩個(gè)窗體之間傳值實(shí)現(xiàn)代碼

    Javascript 兩個(gè)窗體之間傳值實(shí)現(xiàn)代碼

    眾所周知window.open() 函數(shù)可以用來(lái)打開一個(gè)新窗口,那么如何在子窗體中向父窗體傳值呢,其實(shí)通過(guò)window.opener即可獲取父窗體的引用。
    2009-09-09
  • jquery實(shí)現(xiàn)簡(jiǎn)單的遮罩層

    jquery實(shí)現(xiàn)簡(jiǎn)單的遮罩層

    這篇文章主要介紹了jquery實(shí)現(xiàn)簡(jiǎn)單的遮罩層相關(guān)代碼,內(nèi)容很豐富,教大家實(shí)現(xiàn)遮罩層效果,感興趣的小伙伴們可以參考一下
    2016-01-01
  • three.js顯示中文字體與tween應(yīng)用詳析

    three.js顯示中文字體與tween應(yīng)用詳析

    這篇文章主要給大家介紹了關(guān)于three.js顯示中文字體與tween應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • js導(dǎo)出Excel表格超出26位英文字符的解決方法ES6

    js導(dǎo)出Excel表格超出26位英文字符的解決方法ES6

    下面小編就為大家?guī)?lái)一篇js導(dǎo)出Excel表格超出26位英文字符的解決方法ES6。具有很好的參考價(jià)值。一起跟隨小編過(guò)來(lái)看看吧,希望對(duì)大家有所幫助
    2017-11-11
  • html向js方法傳遞參數(shù)具體實(shí)現(xiàn)

    html向js方法傳遞參數(shù)具體實(shí)現(xiàn)

    html如何向js方法傳遞參數(shù),在本文將為大家詳細(xì)介紹下html注冊(cè)事件向引用方法中的傳參問(wèn)題,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
    2013-08-08

最新評(píng)論