先介紹參數爲普通字符串的使用方式,此時match方法的返回值是存放首次匹配內容的數組。若是沒有找到匹配結果,返回null。語法結構:正則表達式
1 str.match(searchvalue)
參數解析:
(1).searchvalue:必需,規定方法要檢索的字符串。
代碼實例:
let str="antzone";
console.log(str.match("n"));
代碼運行效果:
["n", index: 1, input: "antzone", groups: undefined]數組
對上述代碼運行結果分析以下:
(1).match方法在有匹配結果的時候返回值是一個數組。
(2).數組第一個元素是match方法首次匹配到的子字符串,"antzone"雖然有多個"n",可是返回的數組只存儲首次匹配到的"n",若是match方法的參數是全局匹配的正則,將會存儲全部的匹配到的子字符串。
(3).index屬性值返回首次匹配到子字符串的位置。
(4).input屬性值是原字符串"antzone"。
(5).groups屬性當前並不被支持,暫時不作介紹。瀏覽器
let str="antzone";
console.log(str.match("zon"));
代碼運行效果:
["zon", index: 3, input: "antzone", groups: undefined]url
首次匹配到子字符的位置,以子字符串的首字符在原字符串位置爲準。
字符串與數組相似,字符位置從0開始計算,也就是第一個字符的位置爲0,第二個位置爲1,以此類推。spa
let str="antzone";
console.log(str.match("螞蟻"));
代碼運行效果:對象
null
若是匹配不到任何內容,方法返回值爲null。索引
正則表達式 match()
match方法可在字符串內查找一個或多個與指定正則表達式匹配的子字符串。
方法的返回值是存放着匹配結果的數組,但數組元素並不必定全都是匹配結果,後面會詳細介紹。
語法結構:
1 stringObject.match(reg)
參數解析:
(1).stringObject:從中查找子字符串的源字符串。
(2).reg:正則表達式對象或者正則表達式直接量。ip
瀏覽器支持:
(1).IE瀏覽器支持此方法。
(2).edge瀏覽器支持此方法。
(3).火狐瀏覽器支持此方法。
(4).谷歌瀏覽器支持此方法。
(5).opera瀏覽器支持此方法。
(6).safria瀏覽器支持此方法。字符串
一.非全局匹配:
所謂非全局匹配,也就是使用g修飾符
此時,match方法最多隻在字符串中成功匹配一次:
(1).若是不存在匹配的子字符串,返回null。
(2).若是存在匹配的子字符串,返回一個數組。
返回的數組解析以下:
首先說明一下,數組元素的索引是從0開始的。
(1).第0個元素是匹配結果。
(2).第1個元素是第一個引用型分組匹配的子字符串。
(3).第2個元素存放的是第二個引用型分組匹配的子字符串,依次類推。
返回的數組對象同時具備兩個屬性:
(1).index:返回匹配的子字符串起始字符在stringObject源字符串中的位置。
(2).input:返回stringObject源字符串。input
二.全局匹配:
match方法執行全局匹配,獲取全部能夠匹配的子字符串:
(1).若是不存在匹配的子字符串,返回null。
(2).若是存在匹配的子字符串,返回一個數組。
與非全局匹配的區別:
(1).不具備index和input屬性。
(2).不具備引用型分組匹配的子字符串,數組元素僅包含匹配的全部子字符串。
代碼實例以下:
var str="本站url地址是www.softwhy.com";
var reg=/why/;
console.log(str.match(reg));
上面代碼採用非全局模式,運行效果以下:
["why", index: 16, input: "本站url地址是www.softwhy.com", groups: undefined]
當前JavaScript並不支持groups,先不用去管,分析以下:
(1).數組第0個元素是匹配的子字符串。
(2).index屬性值是"why"中"w"在源字符串中的位置。
(3).input屬性值是整個源字符串。
var str="本站url地址是www.softwhy.com";
var reg=/w(h)y/;
console.log(str.match(reg));
代碼運行效果以下:
"why", "h", index: 16, input: "本站url地址是www.softwhy.com", groups: undefined]
分析以下:
(1).數組第0個元素是匹配的子字符串。
(2).數組第一個元素是正則表達式中引用分組所匹配的內容。
(3).index屬性值是"why"中"w"在源字符串中的位置。
(4).input屬性值是整個源字符串。
var str="本站url地址是www.softwhy.com";
var reg=/o/;
console.log(str.match(reg));
代碼運行效果以下:
["o", index: 13, input: "本站url地址是www.softwhy.com", groups: undefined]
儘管源字符串中,有多個"0",可是隻能匹配第一個,由於執行的是非全局匹配。
var str="本站url地址是www.softwhy.com";
var reg=/o/g;
console.log(str.match(reg));
代碼運行效果以下:
["o", "o"]
匹配結果相對單純一些,數組中只存儲所匹配到的內容。
var str="antzoane";
var reg=/a(n)/g;
console.log(str.match(reg));
代碼運行效果以下:
["an", "an"]
儘管有子表達式,可是返回的數組並不包括子表達式匹配的內容,與非全局匹配不一樣。