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);
}