用於正則表達式模式匹配的String方法

Sting支持4種使用正則表達式的方法。最簡單的時search().他的參數時一個正則表達式,返回第一個與之匹配的子串的的起始位置,如果找不到匹配的子串,它將返回-1。比如,下面的調用返回值爲4:
var a = "javascript".search(/script/i);
如果search()的參數不是正則表達式,則首先會通過RegExp構造函數將它轉換爲正則表達式,search()方法不支持全局檢索,因爲他會忽略正則表達式參數中的修飾符g.

2.replace()方法用以執行檢索和替換操作。其中第一個參數是一個正則表達式,第二個參數是要進行替換的字符串,如果replace()的第一個參數是字符串而不是正則表達式,則replace()將直接搜索這個字符串,而不是像所有不區分大小寫的search()一樣首先通過RegExp()將它轉換爲正則表達式。如下代碼
text.replace(/javascript/gi,"JavaScript");//將 所有不區分大小寫的javascript都換成大小寫正確的JavaScript.
但replace()的功能遠不止這些。如果在字符串中出現了$加數字,那麼replace()將用與指定的子表達式相匹配的文本來替換這兩個字符。如下代碼
var quote = /"([^"]*)"/g; //將一個字符串的英文引號替換爲中文半角引號

var text = '"zhangrui"';

console.log(text.replace(quote," “$1” "));


 3.match()方法是最常用的正則表達式的方法。它的唯一參數就是一個正則表達式,返回的是有匹配結果組成的數組。
"1 plus 2 equals 3”.match(/\d+/g) //返回["1","2","3"]

如果match()返回一個數組a,那麼a[0]存放的是完整的匹配,a[1]存放的是與第一個圓括號括起來的表達式相匹配的子串,以此類推。看如下代碼就會明白:

var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "Visit my blog at http://www.example.com/~david";
var result = text.match(url);
if(result != null){
var fullurl = result[0];//包含"http://www.example.com/~david"
var protocal = result[1];//包含 "http"
var host = result[2];//包含 "www.example.com"
var path = result[3];//包含"~david"
}

4.split()  這個比較簡單,我就不介紹了。看代碼就能明白
"123,456,789".split(",");//返回["123","456","789"]
"1,  2 ,  3 ,  4,   5,  6,  7".split(/\s*,\s*/);//可指定分隔符,允許兩邊可以留有任意多的空白符   返回結果爲["1","2","3","4","5","7"]




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章