quran-meta
Version:
Library with meta data and functionality related to Holy Quran
30 lines (29 loc) • 871 B
JavaScript
import { checkValidSurahAyah } from "./validation.mjs";
export function ayahStringSplitter(str) {
const [surahStr, ayahsStr] = str.trim().split(":");
const surah = parseInt(surahStr, 10);
if (isNaN(surah)) {
throw new Error("Error in surah format " + str);
}
if (!ayahsStr) {
throw new Error("Error in data " + str);
}
let ayahs;
if (ayahsStr.includes("-")) {
ayahs = ayahsStr.split("-").map((a) => {
const ayah = parseInt(a, 10);
if (isNaN(ayah) || ayah === 0) {
throw new Error("Error in ayah " + a);
}
return ayah;
});
if (ayahs[0] > ayahs[1]) throw new Error("Error in ayah range " + str);
} else {
ayahs = parseInt(ayahsStr, 10);
if (isNaN(ayahs) || ayahs === 0) {
throw new Error("Error in data " + str);
}
checkValidSurahAyah(surah, ayahs);
}
return [surah, ayahs];
}