ฟังก์ชันรับสตริงและตัวคั่นหลายตัว คืนอาร์เรย์ที่แยกแล้ว
ตัวอย่าง: 'rttt.trt/trfd/trtr,tr' ตัวคั่น ['/', '.', ','] → ['rttt', 'trt', 'trfd', 'trtr']
ตัวอย่างโค้ด
const str = 'rttt.trt/trfd/trtr,tr';
const splitMultiple = (str, ...separator) => {
const res = [];
let start = 0;
for(let i = 0; i < str.length; i++){
if(!separator.includes(str[i])){
continue;
};
res.push(str.substring(start, i));
start = i+1;
};
return res;
};
console.log(splitMultiple(str, '/', '.', ','));ผลลัพธ์
[ 'rttt', 'trt', 'trfd', 'trtr' ]
คำอธิบาย: ใช้ rest parameter ...separator รับตัวคั่นหลายตัว วนลูปตรวจสอบแต่ละตัวอักษร ถ้าเป็นตัวคั่น ตัด substring จาก start ถึง i แล้วอัปเดต start
วิธีง่ายกว่า: str.split(/[\/.,]/) ใช้ character class ใน Regex แยกได้ทุกตัวคั่นพร้อมกัน