Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

แยกสตริงด้วยหลายตัวคั่น (Separators) - JavaScript

ฟังก์ชันรับสตริงและตัวคั่นหลายตัว คืนอาร์เรย์ที่แยกแล้ว

ตัวอย่าง: '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 แยกได้ทุกตัวคั่นพร้อมกัน