parseSurahAyahRangeString method

(int, int, int, int)? parseSurahAyahRangeString(
  1. String input
)

يحلل نص نطاق على شكل "2:15-3:25" إلى (startSurah,startAyah,endSurah,endAyah) يدعم الأرقام العربية والإنجليزية والمسافات.

Implementation

(int startSurah, int startAyah, int endSurah, int endAyah)?
    parseSurahAyahRangeString(String input) {
  final normalized = input.convertArabicNumbersToEnglish(input).trim();
  final reg = RegExp(r"^\s*(\d+)\s*:\s*(\d+)\s*-\s*(\d+)\s*:\s*(\d+)\s*$");
  final m = reg.firstMatch(normalized);
  if (m == null) return null;
  try {
    final ss = int.parse(m.group(1)!);
    final sa = int.parse(m.group(2)!);
    final es = int.parse(m.group(3)!);
    final ea = int.parse(m.group(4)!);
    return (ss, sa, es, ea);
  } catch (_) {
    return null;
  }
}