這里我第一時間想到的就是用 js 的search 和 match ,其中最常見的是match;
1. str.search(regexp):search()方法不支持全局搜索,因為會忽略正則表達式參數的標識g,並且也忽略了regexp的lastIndex屬性,總是從字符串的開始位置進行檢索,所以它會總是返回str的第一個匹配的位置。
var str = "Javascript"; str.search(/script/); // 返回 script 中s的位置為 4 str.search(/j/i); // 設置正則表達是標識i:忽略大小寫,則匹配到J,返回位置0
2. str.match(regexp):返回值是包含了匹配結果的數組。(有設置全局標志g和沒有設置全局標志,如果沒有設置全局標志,則就不是全局性的檢索,只是檢索第一個匹配。)
有設置全局標志
// 全局匹配 var str = "1 plus 2 equals 3"; str.match(/\d/g); // 匹配字符串中出現的所有數字,並返回一個數組: [1,2,3]
沒有設置全局標志
// 非全局匹配 var str = "visit my blog at http://www.example.com"; str.match(/(\w+):\/\/([\w.]+)/); // 返回結果:["http://www.example.com", "http", "www.example.com"]
// 正則表達式匹配的結果為:http://www.example.com // 第一個子表達式 (\w+)匹配結果:http // 第二個子表達式 ([\w.])匹配結果: www.example.com
