说明: 我刚开始学习正则表达式,试图在javascript中学习捕获组
- 我使用https://regex101.com/r/COYhIc/1 进行测试
- 请参考附加的图像了解每个匹配项的字符位置列 https://regex101.com
目标:
- 我想在控制台上打印所有匹配和捕获组 (已完成)
- 我想打印每个匹配项的字符位置 [请参考图片] (未完成)
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);