ลบช่องว่างสีขาวทั้งหมดออกจากข้อความ


587
$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");

นี่คือตัวอย่างจากรหัสของฉัน ฉันต้องการเพิ่มคลาสให้กับ ID หลังจากได้รับคุณสมบัติข้อความของ ID อื่น ปัญหานี้คือ ID ที่เก็บข้อความที่ฉันต้องการมีช่องว่างระหว่างตัวอักษร

ฉันต้องการให้ช่องว่างสีขาวถูกลบออก ฉันได้ลองTRIM()แล้วREPLACE()แต่นี่ใช้ได้แค่บางส่วนเท่านั้น REPLACE()จะลบเฉพาะพื้นที่ที่ 1

คำตอบ:


1347

คุณต้องบอก replace () เพื่อทำซ้ำ regex:

.replace(/ /g,'')

กรัมหมายถึงตัวละครที่จะทำซ้ำการค้นหาผ่านสตริงทั้งหมด อ่านเกี่ยวกับเรื่องนี้และการปรับเปลี่ยน RegEx อื่น ๆ ที่มีใน JavaScript ที่นี่

หากคุณต้องการจับคู่ช่องว่างทั้งหมดไม่ใช่เฉพาะอักขระช่องว่างตามตัวอักษรให้ใช้\sแทน:

.replace(/\s/g,'')

30
กาแฟจะบ่นเกี่ยวกับ regex นั้นด้วยเหตุผลที่น่ากลัวบางอย่าง แต่ฉันต้องไปข้างหน้าและใช้.replace(/\s+/g, '')ซึ่งเป็นสิ่งที่ดีโดยฉัน
Dan Bradbury

7
หากคุณต้องการที่จะใช้สิ่งที่ต้องการวิธีการ string.strip ทับทิมซึ่งผลตอบแทนผลตอบแทนสำเนาของสตริงที่มีชั้นนำและต่อท้ายช่องว่างเอาออกนี้ควรทำงาน: หมายถึงช่องว่างหลังจากการเริ่มต้นของสตริงที่หมายถึงช่องว่างในตอนท้ายของ string, คือสำหรับ / หรือในกลุ่ม, และโมดิฟายเออร์อธิบายไว้ในความคิดเห็นด้านบน นอกจากนี้คุณยังต้องใช้ตัวนับหลังจากที่คุณต้องการจับอินสแตนซ์ของช่องว่างสีขาวอย่างน้อยหนึ่งรายการ x = " Many spaces before and after " y = x.replace(/(^\s+|\s+$)/g, "")^\s\s$|g+\s
Garrett Simpson

298
.replace(/\s+/, "") 

จะแทนที่ช่องว่างแรกเท่านั้นซึ่งรวมถึงช่องว่างแท็บและบรรทัดใหม่

ในการแทนที่ช่องว่างทั้งหมดในสตริงคุณต้องใช้โหมดโกลบอล

.replace(/\s/g, "")

11
คนแรกไม่ได้ลบช่องว่างสีขาวทั้งหมด (มันจะลบเฉพาะกลุ่มแรกของพื้นที่ / บรรทัดใหม่ / แท็บ) ที่สองคือตกลง การสาธิต: regex101.com/r/wX8rF2/3

4
.replace (/ \ s + / g, '')
mynameistechno

@mynameistechno +ไม่เพิ่มอะไรอีกแล้วตั้งแต่เรากำลังใช้g
โมดิฟายเออร์

บรรทัดแรกไม่ทำงานเนื่องจากไม่ได้ลบช่องว่างต่อท้ายออกจากข้อความ
UKDataGeek

@ d4nyll มันอาจทำให้มีประสิทธิภาพมากขึ้น
โซโลมอน Ucko

5

การใช้String.prototype.replaceกับ regex ดังที่กล่าวไว้ในคำตอบอื่น ๆ เป็นทางออกที่ดีที่สุดอย่างแน่นอน

แต่เพื่อความสนุกคุณสามารถลบช่องว่างทั้งหมดออกจากข้อความโดยใช้String.prototype.splitและString.prototype.join:

const text = ' a b    c d e   f g   ';
const newText = text.split(/\s/).join('');

console.log(newText); // prints abcdefg

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.