亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

我們可以用函數(shù)來定義高級替換,而不是一個簡單的字符串。比如:

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

我們看到,當(dāng)正則表達(dá)式每產(chǎn)生一次匹配時,會觸發(fā)替換函數(shù)并將匹配字符串作為參數(shù)傳到替換函數(shù)中。當(dāng)正則表達(dá)式中定義了子匹配(submatch)時,甚至可以做更高級的事情,替換函數(shù)可以根據(jù)不同的子匹配來作出相應(yīng)的處理。比如我們要對網(wǎng)頁中的某些指定的實體代碼轉(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ī)則就會很清楚其原理了。事實上,如果在正則表達(dá)式中定義了子匹配,那么參數(shù)的長度會隨著子匹配的個數(shù)改變,如果沒有定義子匹配,那么長度是固定的。傳參的規(guī)則為:

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    jquery實現(xiàn)簡單的遮罩層

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

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

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

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

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

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

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

最新評論