javascript中replace的Regex文法

來源:互聯網
上載者:User
replace 方法以下是javascript 中的例子下面的樣本示範了 replace 方法將第一次出現的單詞 "The" 替換為單詞 "A" 的用法。function ReplaceDemo(){   var r, re;                    // 聲明變數。   var ss = "The man hit the ball with the bat.\n";   ss += "while the fielder caught the ball with the glove.";   re = /The/g;             // 建立Regex模式。   r = ss.replace(re, "A");    // 用 "A" 替換 "The" 。   return(r);                   // 返回替換後的字串。}另外, replace 方法也可以替換模式中的子運算式。 下面的範例示範了交換字串中的每一對單詞: function ReplaceDemo(){   var r, re;                      // 聲明變數。   var ss = "The rain in Spain falls mainly in the plain.";   re = /(\S+)(\s+)(\S+)/g;        // 建立Regex模式。   r = ss.replace(re, "$3$2$1");   // 交換每一對單詞。   return(r);                      // 返回結果字串。}下面的樣本(在 JScript 5.5 及更新版本中執行)執行的是從華氏到攝氏的轉換,它示範了使用函數作為 replaceText 。要想知道該函數是如何工作的,傳遞一個包含數值的字串,數值後要緊跟 "F" (例如 "Water boils at 212" )。function f2c(s) {  var test = /(\d+(\.\d*)?)F\b/g;    // 初始化模式。  return(s.replace    (test,      function($0,$1,$2) {         return((($1-32) * 5/9) + "C");      }    )  );}document.write(f2c("Water freezes at 32F and boils at 212F."));重點就是第三個例子了1. 在一些網站上搜尋文章的時候,會發現這麼一個現象,就是搜尋的關鍵字會高亮改變顏色顯示出來??這是怎麼實現的呢??其實我們可以用Regex來實現,具體怎麼樣實現呢?簡單的原理請看下面的代碼<script language="javascript">var str=" 中華人民共和國,中華人民共和國";var newstr=str.replace(/( 人)/g,"<font color=red>$1</font>");document.write(newstr);</script>2.<script language="javascript">var reg=new RegExp("\\d","g");var str="abd1afa4sdf";str.replace(reg,function(){alert(arguments.length);});</script>我們驚奇的發現,匿名函數竟然被執行了二次,並且在函數裡還帶有三個參數 ,為什麼會執行二次呢??這個很容易想到,因為我們寫的Regex是匹配單個數位,而被檢測的字串剛好也有二個數字,故匿名函數被執行了二次。。在匿名函數內部的那三個參數到底是什麼內容呢?最終我們會發現: 前面參數表示匹配到的字元,倒數第二個參數表示匹配時的字元最小索引位置(RegExp.index) ,倒數第一個參數表示被匹配的字串(RegExp.input) 。其實這些參數的個數,還會隨著子匹配的變多而變多的。 也就是說我們可以這樣理解javascript 文檔中的$0,$1,$2 只是形參, 實參是由Regex寫好的, 即使我們寫成a,b,c, 它運行時所具有的值的仍然是 $0,$1,$2.
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.