如果没有设置全局标志,则就不是全局性的检索,只是检索第一个匹配。这种情况下,match()方法匹配的结果也是返回一个数组,数组的第一个元素就是匹配的字符串,而余下的元素则是正则表达式中用括号括起来的子表达式。来看个例子:
// 非全局匹配 var str = "visit my blog at "; str.match(/(\w+):\/\/([\w.]+)/); // 返回结果:["http://www.example.com", "http", "www.example.com"] // 正则表达式匹配的结果为: // 第一个子表达式 (\w+)匹配结果:http // 第二个子表达式 ([\w.])匹配结果:
str.split(delimiter, limit)
定义:split()方法可以把调用它的字符串分解为一个字串数组,使用的分隔符是它的参数。
参数:
delimiter:字符串或者正则表达式,从该参数指定的地方分割字符串。
limit:指定返回数组的最大长度,如果没有设置该参数,则整个字符串都会被分割。
例如:
//1、 只传一个参数,默认分割整个字符串 var str ="a,b,c,d,e"; str.split(','); // 返回分割的字符串数组:["a", "b", "c", "d", "e"] //2、传入两个参数 var str ="a,b,c,d,e"; str.split(',',3); //指定限定长度,则返回对应的数组:["a", "b", "c"] //3、使用正则表达式匹配,不包含分割字符串 var str = "aa44bb55cc66dd"; str.split(/\d+/); //通过匹配数字进行分割字符串,但不包含分割的字符串,则返回的结果为:["aa","bb","cc","dd"]; //4、使用正则表达式匹配,包含分割字符串 var str = "aa44bb55cc66dd"; str.split(/(\d+)/); //通过匹配数字进行分割字符串,且分割的字符串是包含在子表达式中,则返回的结果为:["aa", "44", "bb", "55", "cc", "66", "dd"]