ฉันต้องการแทนที่อักขระเว้นวรรค (ช่องว่างแท็บบรรทัดใหม่) ทั้งหมดใน JavaScript
ต้องทำอย่างไร?
ฉันเหนื่อย:
str.replace(/ /gi, "X")
ฉันต้องการแทนที่อักขระเว้นวรรค (ช่องว่างแท็บบรรทัดใหม่) ทั้งหมดใน JavaScript
ต้องทำอย่างไร?
ฉันเหนื่อย:
str.replace(/ /gi, "X")
คำตอบ:
replace
ฟังก์ชันไม่ได้แก้ไขstr
ดังนั้นคุณต้องกำหนดกลับ
perl = TRUE
เช่นgsub(pattern = "[\\s]+", ..., perl = TRUE)
\s
เป็นอักขระเมตาที่ครอบคลุมพื้นที่สีขาวทั้งหมด คุณไม่จำเป็นต้องทำให้มันไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ - พื้นที่สีขาวไม่มีตัวพิมพ์
str.replace(/\s/g, "X")
นอกจากนี้เรายังสามารถใช้สิ่งนี้หากเราต้องการเปลี่ยนช่องว่างที่รวมหลาย ๆ ตัวด้วยอักขระตัวเดียว:
str.replace(/\s+/g,'X');
ดูการใช้งานจริงที่นี่: https://regex101.com/r/d9d53G/1
คำอธิบาย
/
\s+
/ ก
\s+
จับคู่อักขระช่องว่างใด ๆ (เท่ากับ[\r\n\t\f\v ]
)+
Quantifier - จับคู่ระหว่างหนึ่งครั้งและไม่ จำกัด จำนวนครั้งมากที่สุดเท่าที่จะเป็นไปได้โดยให้คืนตามต้องการ (โลภ)
คุณได้ลอง\s
หรือยัง?
str.replace(/\s/g, "X");
ถ้าคุณใช้
str.replace(/\s/g, "");
มันจะแทนที่ช่องว่างทั้งหมด ตัวอย่างเช่น:
var str = "hello my world";
str.replace(/\s/g, "") //the result will be "hellomyworld"
ลองสิ่งนี้:
str.replace(/\s/g, "X")
\s\n\t
ตรงกัน: อักขระช่องว่างใด ๆ ตามด้วยขึ้นบรรทัดใหม่ตามด้วยแท็บ
ไม่ใช่ / gi แต่ / g
var fname = "My Family File.jpg"
fname = fname.replace(/ /g,"_");
console.log(fname);
ให้
"My_Family_File.jpg"
จริงๆแล้วมันได้ผล แต่
ลองดูสิ
ใช้ค่า / \ s / g เป็นตัวแปรสตริงเช่น
String a = /\s/g;
str = str.replaceAll(a,"X");
replaceAll
มาจากไหน?
คุณสามารถใช้ฟังก์ชัน trim
let str = ' Hello World ';
alert (str.trim());
พื้นที่ด้านหน้าและด้านหลังทั้งหมดรอบ ๆ Hello World จะถูกลบออก
ฉันใช้เมธอด "slugify" จาก underscore.string และได้ผลเหมือนมีเสน่ห์:
https://github.com/epeli/underscore.string#slugifystring--string
สิ่งที่ยอดเยี่ยมคือคุณสามารถนำเข้าวิธีนี้ได้จริงๆไม่จำเป็นต้องนำเข้าทั้งไลบรารี