JSFiddle - React, Tailwind, and code Playground
by B L Praveen
JavaScript
const string = "A1-B7F31H42-H44";
const regexp = /([A-Z]+\d+-[A-Z]+\d+)|(\s*[A-Z]+\d+)/g;
let matches = string.matchAll(regexp);
console.log(Array.from(matches, m => m[2]).filter(item => !!item));
matches = string.matchAll(regexp);
let ranges = Array.from(matches, m => m[1]).filter(item => !!item)
for (const range of ranges) {
const [start,end]= range.split('-');
regx = /([A-Z]+)(\d+)/g;
matches = start.matchAll(regx);
start_row = Array.from(matches, m => m[1]).filter(item => !!item)[0];
matches = start.matchAll(regx);
start_col = Array.from(matches, m => m[2]).filter(item => !!item)[0];
matches = end.matchAll(regx);
end_row = Array.from(matches, m => m[1]).filter(item => !!item)[0];
matches = end.matchAll(regx);
end_col = Array.from(matches, m => m[2]).filter(item => !!item)[0];
console.log(start_row,start_col,end_row,end_col);
}