หมายเหตุ: หลังเผยแพร่ คุณอาจต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง

  • ไฟร์ฟอกซ์ / ซาฟารี: กด Shift ค้างขณะคลิก Reload หรือกด Ctrl-F5 หรือ Ctrl-R (⌘-R บนแมค)
  • กูเกิล โครม: กด Ctrl-Shift-R (⌘-Shift-R บนแมค)
  • ไมโครซอฟท์ เอดจ์: กด Ctrl ค้างขณะคลิก Refresh หรือกด Ctrl-F5
// This is javascript version of [[มอดูล:Thai-sortkey]]

var u = String.fromCharCode;
var minorMarkSet = "([" + u(0xE47) + "-" + u(0xE4E) + u(0x302) + u(0x304) + u(0x331) + "])";
var minorMarkSetRegex = RegExp(minorMarkSet, "g");

var minorMarks = {
	[u(0xE47)]: "0", [u(0xE48)]: "1", [u(0xE49)]: "2", [u(0xE4A)]: "3", [u(0xE4B)]: "4",
	[u(0xE4C)]: "5", [u(0xE4D)]: "6", [u(0xE4E)]: "7", [u(0x302)]: "8", [u(0x304)]: "9", [u(0x331)]: "A"
};

function ThaiMakeSortKey(text) {
	var minorKeyArr = [];
	while (match = minorMarkSetRegex.exec(text)) {
		minorKeyArr.push(minorMarks[match[1]]);
	}
	text = text.replace(minorMarkSetRegex, "");
	
	text = text.replace(/[-\s\.,/ๆ]/g, "");
	text = text.replace(/([เแโใไ])(ʼ?[ก-ฮ])/g, "$2$1");
	
	return text + minorKeyArr.join("");
}

function ThaiSort(item1, item2) {
	return ThaiMakeSortKey(item1) < ThaiMakeSortKey(item2);
}