1. 程式人生 > >js正則匹配字串

js正則匹配字串

這裡我第一時間想到的就是用 js 的search 和 match ,其中最常見的是match;

1. str.search(regexp):search()方法不支援全域性搜尋,因為會忽略正則表示式引數的標識g,並且也忽略了regexp的lastIndex屬性,總是從字串的開始位置進行檢索,所以它會總是返回str的第一個匹配的位置。

1 var str = "Javascript";
2 str.search(/script/); // 返回 script 中s的位置為 4
3 str.search(/j/i); // 設定正則表達是標識i:忽略大小寫,則匹配到J,返回位置0

2. str.match(regexp):返回值是包含了匹配結果的陣列。(有設定全域性標誌g和沒有設定全域性標誌,如果沒有設定全域性標誌,則就不是全域性性的檢索,只是檢索第一個匹配。)

  有設定全域性標誌

1 // 全域性匹配
2 var str = "1 plus 2 equals 3";
3 str.match(/\d/g); // 匹配字串中出現的所有數字,並返回一個數組: [1,2,3],當然也可以匹配出現的字串

  沒有設定全域性標誌

1 // 非全域性匹配
2 var str = "visit my blog at http://www.example.com";
3 str.match(/(\w+):\/\/([\w.]+)/); // 返回結果:["http://www.example.com", "http", "www.example.com"]
4 // 正則表示式匹配的結果為:http://www.example.com
5 // 第一個子表示式 (\w+)匹配結果:http
6 // 第二個子表示式 ([\w.])匹配結果: www.example.com