【发布时间】:2019-07-26 10:23:12
【问题描述】:
声明: 我是 RegExp 的新手,正在尝试学习 javascripts 中的捕获组
- 我正在使用https://regex101.com/r/COYhIc/1 进行测试
- https://regex101.com 的每个匹配的字符 pos 列见附图
目标:
- 我想在控制台打印所有匹配项和组(完成)
- 我想打印每个匹配的字符位置 [见图](剩余)
JSFIDDLE: https://jsfiddle.net/bababalcksheep/p28fmdk4/68/
JavaScript:
function parseQuery(query) {
var isRE = query.match(/^\/(.*)\/([a-z]*)$/);
if (isRE) {
try {
query = new RegExp(isRE[1], isRE[2]);
} catch (e) {}
}
return query;
}
var str = $('#str').val();
var regex = parseQuery($('#reg').val());
//
var result;
var match_no = 0;
var output = '';
while ((result = regex.exec(str)) !== null) {
match_no++;
output += `\nMatch ${match_no}\n`;
output += `Full Match, ${ result[0]} , Pos\n`;
for (i = 1; i < result.length; i++) {
output += `Group ${i}, ${ result[i]} , Pos\n`;
}
}
console.log(output);
【问题讨论】:
标签: javascript regex