千秋此意
匹配的字符串中至少有一个或者多个 “_”(下划线)或者 “ ”(空格)正则里()表示分组,分组开头有?:表示非捕获型分组,| 表示或者 + 号表示 一个或者多个非捕获性分组就是这个分组匹配到的子字符串不会被作为匹配结果返回var re = /(?:_| )+\w/;
var re2 = /(_| )+\w/;
var str = 'test_string';
re.test(str) // true
console.log(RegExp.$1) // (非捕获性分组,分组里匹配到的子串访问不到)
re2.test(str) // true
console.log(RegExp.$1) // '_' (捕获性分组,分组里匹配到的子串可以访问)
console.log(str.match(re)); // ['_s'] (非捕获性分组,没有把分组内容作为匹配到的子串返回)
console.log(str.match(re2)); // ['_s', '_'] (捕获性分组,把分组内容作为匹配到的子串返回)