js中replace的應用

一: 準備知識:html

1.定義:replace() 方法用於在字符串中用一些字符替換另外一些字符,或替換一個與正則表達式匹配的子串。正則表達式

2.語法:函數

stringObject.replace(regexp/substr,replacement)

3.說明:this

  1)第一個參數能夠是 正則 / 字符串spa

    tips: 若是該值是一個字符串,則將它做爲要檢索的直接量文本模式,而不是首先被轉換爲 RegExp 對象。code

  2)第二個參數能夠是 字符串 / 函數regexp

    tips: 函數的時候,每一個匹配都調用該函數,它返回的字符串將做爲替換文本使用。htm

    該函數的對象

    第一個參數是 匹配模式的字符串。blog

    第二個參數是 與模式中的子表達式匹配的字符串,能夠有 0 個或多個這樣的參數。

    第三個參數是一個整數,聲明瞭匹配在 stringObject 中出現的位置。

    第四個參數是 stringObject 自己

4. 正則相關知識

  1)正則對象語法

  直接量語法

/pattern/attributes

  正則對象語法

new RegExp(pattern, attributes);

// 第一個參數:一個 字符串 或者 正則表達式
// 第二個參數:[可選] 包含屬性"g","i","m";
// 須要注意的是 要是 第一個參數是 字符串的話 m 必須省略

  2)說明:

   i: 執行對大小不敏感的匹配

  g: 執行全局匹配( 查找全部的匹配而不是在找到第一個匹配後中止 );

  m: 執行多行匹配

  其餘正則請點擊:

二. 示例:

    1.全局替換111爲aaa

var str = '111bbb';
str = str.replace( /111/g, 'aaa' );
alert(str);

    2.找到 "(數字@三位數字)" 的格式,替換成a標籤 裏面包含三位數字

  html:

<ul id="ul1">
    <li>(1@001)我愛</li>
    <li>(2@002)北京</li>
    <li>(3@003)</li>
</ul>

  js:

$.each( $('li'), function(i, item){
    var newHtml = $(this).html();
    newHtml = newHtml.replace(/\(\d\@(\d{3})\)/, function ($0, $1) {
         return '<a href="#">'+ $1 +'</a>';
    });
    $(this).html( newHtml );
});
相關文章
相關標籤/搜索