ใน JavaScript มีหลายวิธีในการกรองช่องว่างจากสตริง บทความนี้พยายามอธิบายวิธีที่คุณสามารถทำได้ด้วยอักขระช่องว่างในสตริงของคุณ โดยแสดงวิธีการดำเนินการในห้าวิธี:
- การใช้ลูป
- การใช้วิธีการอาร์เรย์:วิธีการแยก/กรอง/เข้าร่วม
- การใช้วิธีการอาร์เรย์:แยก/เข้าร่วม
- การใช้วิธีการแทนที่
การใช้ลูป
เมื่อเราใช้สำหรับลูป เราต้องประกาศตัวแปรสตริงใหม่ก่อนการวนซ้ำ เพื่อให้เราเพิ่มเข้าไปได้
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <style> body { font-family: 'Roboto', Courier, monospace } </style> <script> const handleSubmit = str => { //loop let newStr = ""; for(let i = 0; i < str.length; i++) { if(str[i] !== " ") { newStr += str[i]; } } document.getElementById("demo").innerHTML = newStr; } </script> </head> <body> <h1>Whitespace Filter</h1> <input id="demoString" value="" type="text" name="inputString" placeholder="I'm a string"/> <input type="submit" onclick="handleSubmit(demoString.value)"/> <div id="demo"></div> </body> </html>
ลูปจะดูที่อักขระแต่ละตัวเพื่อดูว่าเป็นอักขระช่องว่างหรือไม่ หากไม่เป็นเช่นนั้น ระบบจะเพิ่มลงในตัวแปร newStr เพื่อตอบสนองวัตถุประสงค์ของเราที่นี่ เราแทรกลงใน Document Object Model (DOM) เพื่อให้เราเห็นบนหน้าจอ หากคุณต้องการใช้ที่อื่นในโค้ดของคุณ คุณจะต้องส่งคืนตัวแปร newStr
การใช้วิธีการอาร์เรย์:วิธีการแยก/กรอง/เข้าร่วม
เกี่ยวข้องอย่างใกล้ชิดกับวิธีการวนซ้ำที่อธิบายข้างต้น วิธี split/filter นำสตริง แยกออกเป็นอาร์เรย์ จากนั้นใช้ตัวกรองเมธอด ES6 ที่จะลบช่องว่าง นี่คือวิธีการ:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <style> body { font-family: 'Roboto', Courier, monospace } </style> <script> const handleSubmit = str => { //split/Filter const splitted = str.split(''); const filtered = splitted.filter(char => { return char !== " "; }) let newStr = filtered.join(''); document.getElementById("demo").innerHTML = newStr; } </script> </head> <body> <h1>Whitespace Filter</h1> <input id="demoString" value="" type="text" name="inputString" placeholder="I'm a string"/> <input type="submit" onclick="handleSubmit(demoString.value)"/> <div id="demo"></div> </body> </html>
การใช้ Array Method:Split/Join
ในส่วนก่อนหน้านี้ เราใช้การแยก กรอง และการรวม เพื่อลบช่องว่างออกจากสตริง ในความเป็นจริง เราต้องใช้เมธอด split และ join ก็ต่อเมื่อเราใช้วิธีอาร์เรย์ สิ่งที่เราต้องทำคือแบ่งพื้นที่แล้วเข้าร่วมตัวละครแต่ละตัว!
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <style> body { font-family: 'Roboto', Courier, monospace } </style> <script> const handleSubmit = str => { //split/join const splitted = str.split(' '); let newStr = splitted.join(''); document.getElementById("demo").innerHTML = newStr; } </script> </head> <body> <h1>Whitespace Filter</h1> <input id="demoString" value="" type="text" name="inputString" placeholder="I'm a string"/> <input type="submit" onclick="handleSubmit(demoString.value)"/> <div id="demo"></div> </body> </html>
ช่างเป็นทางลัดเล็ก ๆ น้อย ๆ ที่น่าสนใจ! คุณสามารถแยกอักขระที่คุณเลือกเพื่อตัดอักขระนั้นออกจากสตริงทั้งหมด แล้วรวมอาร์เรย์กลับเข้าด้วยกันบนอักขระแต่ละตัวเพื่อรับสตริงของคุณ
การใช้วิธีการแทนที่:
วิธีการแทนที่เหมาะมากที่จะใช้เมื่อคุณต้องการใช้ RegEx เพื่อกรองช่องว่างทั้งหมดในสตริงของคุณ เราจำเป็นต้องใช้ RegEx ที่นี่เนื่องจากการแทนที่โดยคำจำกัดความจะแทนที่อินสแตนซ์แรกของสิ่งที่กำลังมองหา ถ้าเรามีหลายช่องว่างในสตริง วิธีการแทนที่จะลบเฉพาะช่องว่างแรก เว้นแต่ว่าเราใช้นิพจน์ทั่วไปเพื่อระบุช่องว่างสีขาว
ค่าสถานะส่วนกลางที่ส่วนท้ายของนิพจน์ทั่วไปคือสิ่งที่ช่วยให้เราค้นหาและแทนที่ได้มากกว่าหนึ่งอินสแตนซ์
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <style> body { font-family: 'Roboto', Courier, monospace } </style> <script> const handleSubmit = str => { let regex = /\s+/g let newStr = str.replace(" ", ""); document.getElementById("demo").innerHTML = newStr; } </script> </head> <body> <h1>Whitespace Filter</h1> <input id="demoString" value="" type="text" name="inputString" placeholder="I'm a string"/> <input type="submit" onclick="handleSubmit(demoString.value)"/> <div id="demo"></div> </body> </html>
\s คืออักขระช่องว่าง และเครื่องหมาย + แสดงว่าเรากำลังมองหาอักขระช่องว่างตั้งแต่หนึ่งตัวขึ้นไปที่จัดกลุ่มเป็นแถว g ที่ส่วนท้ายของนิพจน์ เพื่อเป็นการเตือนความจำ ระบุว่าเรากำลังมองหาการจัดกลุ่มอักขระช่องว่างที่แตกต่างกันหลายตัว
บทสรุป
ในบทความนี้ เราได้กล่าวถึงสี่วิธีในการนำพื้นที่สีขาวออกจากการจัดเก็บใน JavaScript เราใช้ลูป วิธีกรอง วิธีแยก/รวม และนิพจน์ทั่วไป การเรียนรู้วิธีทำสิ่งพื้นฐานเหล่านี้ใน JavaScript จะทำให้คุณมีเครื่องมือที่จำเป็นในการแก้ปัญหาที่ซับซ้อนยิ่งขึ้นใน JavaScript ขณะที่คุณก้าวหน้าในการเดินทาง!