นี่เป็นคำถามสัมภาษณ์จากบริษัท lgzx จำเป็นต้องเพิ่มวิธีการในสตริงของ js เพื่อลบอักขระช่องว่าง (รวมถึงช่องว่าง แท็บ ฟีดแบบฟอร์ม ฯลฯ) บนทั้งสองด้านของสตริง
คัดลอกรหัสรหัสดังต่อไปนี้:
String.prototype.trim = ฟังก์ชั่น () {
//return this.replace(/[(^/s+)(/s+$)]/g,"");// ลบอักขระช่องว่างในสตริง
//ส่งคืนสิ่งนี้แทนที่(/^/s+|/s+$/g,""); //
กลับ this.replace(/^/s+/g,"").replace(//s+$/g,"");
-
JQuery1.4.2 ใช้โดย Mootools
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น trim1(str){
กลับ str.replace(/^(/s|/xA0)+|(/s|/xA0)+$/g, '');
-
jQuery1.4.3 ใช้โดย Prototype วิธีนี้จะลบ g เพื่อปรับปรุงประสิทธิภาพเล็กน้อย
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น trim2 (str) {
กลับ str.แทนที่(/^(/s|/u00A0)+/,'').แทนที่(/(/s|/u00A0)+$/,'');
-
หลังจากทำการทดสอบประสิทธิภาพ Steven Levithan ได้เสนอวิธีที่เร็วที่สุดในการตัดสตริงใน JS ซึ่งมีประสิทธิภาพที่ดีกว่าเมื่อประมวลผลสตริงที่ยาว
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น trim3 (str) {
str = str.replace(/^(/s|/u00A0)+/,'');
สำหรับ(var i=str.length-1; i>=0; i--){
ถ้า(//S/.test(str.charAt(i))){
str = str.substring(0, i+1);
หยุดพัก;
-
-
กลับ STR;
-
สิ่งสุดท้ายที่ต้องกล่าวถึงคือ ECMA-262 (V5) เพิ่มวิธีการตัดแต่งแบบดั้งเดิม (15.5.4.20) ให้กับ String นอกจากนี้ ยังมีการเพิ่มเมธอด trimLeft และ trimRight ให้กับ String ในเอ็นจิ้น Molliza Gecko 1.9.1