string.match(reg)与reg.exec(string)的区别

169 阅读1分钟

没有带g修饰符时

图片
返回的都是一个同样的数组,命名为arr,arr[0]是匹配到的第一个字符串,arr[index]是匹配到的字符串在原字符串中的索引,arr[input]是原字符串,arr[groups]为undefined

带g修饰符时


string.match(reg)的结果是匹配到的字符串组成的数组


reg.exec(string)有没有g标志,结果是一样的,唯一的不同,是lastIndex是否重置,有g标志时不重置为0,所以可以依次遍历每个匹配到的字符串。(test()方法也是)

string.replace() string.split(), array.split(), string.match() string.search()都可以把reg表达式作为参数