2009年1月13日

regexp 二頁

RegExp 一頁 | 二頁 | 三頁 | 四頁 | 五頁 | 特徵 | 方法 | 速查表
. (x) (?:x) x(?=y) x(?!y) x|y {n}
.

除了 \n \r \u2028 \u2029 的任一字母。[\s\S] 是所有字母的集合,也包括前述換行字碼。

  • 程式用法:

    <script type='text/javascript'>
    var s='Hello Wendy';
    document.write( s.replace(/e./ig, 'x' ) );
    </script>

  • 執行結果:

    Hxlo Wxdy

(x)

此名為存入括號。計算文法規則 x,符合的子字串存入結果陣列,取值可用 [1], ..., [n] 或用物件的特徵 $1, ..., $9。

  • 程式用法:

    <script type='text/javascript'>
    var s='Hello Wendy';
    document.write( s.replace(/(e.).*(d.)/, 'x' ) +'<br />');
    document.write( RegExp.$1 +' '+ RegExp.$2);
    </script>

  • 執行結果:

    Hx
    el dy

(?:x)

計算符合 x,但是不存入結果陣列。

  • 程式用法:

    <script type='text/javascript'>
    var s='Hello Wendy';
    document.write( s.replace(/(?:e.).*(d.)/, 'x' ) +'<br />');
    document.write( RegExp.$1 +' - '+ RegExp.$2);
    </script>

  • 執行結果:

    Hx
    dy -

x(?=y)

x 符合的條件要加上 x 之後必須接 y。雖然 y 是符合條件之一,但是 y 並不會被替換。

  • 程式用法:

    <script type='text/javascript'>
    var s='Hello Wendy';
    document.write( s.replace(/e(?=l)/gi, 'x' ) );
    </script>

  • 執行結果:

    Hxllo Wendy

x(?!y)

x 符合的條件要加上 x 之後不可接 y。雖然 y 是符合條件之一,但是 y 並不會被替換。

  • 程式用法:

    <script type='text/javascript'>
    var s='Hello Wendy';
    document.write( s.replace(/e(?!l)/gi, 'x' ) );
    </script>

  • 執行結果:

    Hello Wxndy

x|y

符合 x 或 y 都可以。不限兩個參數,例如 d|e|f|g...。

  • 程式用法:

    <script type='text/javascript'>
    var s='Hello Wendy';
    document.write( s.replace(/e(?=(l|n))/gi, 'x' ) +'<br />');
    document.write( s.replace(/(he|lo|dy)/gi, '12' ) );
    </script>

  • 執行結果:

    Hxllo Wxndy
    12l12 Wen12

{n}

n 是正整數。符合正好發生 n 次。

  • 程式用法:

    <script type='text/javascript'>
    var s='Helllllo Wendy';
    document.write( s.replace(/el{2}/gi, 'x' ) +'<br />');
    document.write( s.replace(/el{3}/gi, 'x' ) );
    </script>

  • 執行結果:

    Hxlllo Wendy
    Hxllo Wendy


©2008-2009 by ant2legs, All Rights Reserved. ant2legs 擁有其製作的文章,圖片與程式的著作權,所有權利保留。