猿问

请问这句正则/(?:_| )+/是什么意思(解释越简单越好)?

Joy_Strong
浏览 1081回答 1
1回答

千秋此意

匹配的字符串中至少有一个或者多个 “_”(下划线)或者 “ ”(空格)正则里()表示分组,分组开头有?:表示非捕获型分组,| 表示或者 + 号表示 一个或者多个非捕获性分组就是这个分组匹配到的子字符串不会被作为匹配结果返回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', '_'] (捕获性分组,把分组内容作为匹配到的子串返回)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答