هذا سؤال مقابلة من شركة lgzx ويتطلب إضافة طريقة إلى سلسلة js لإزالة أحرف المسافات البيضاء (بما في ذلك المسافات وعلامات التبويب وموجزات النماذج وما إلى ذلك) على جانبي السلسلة.
انسخ رمز الكود كما يلي:
String.prototype.trim = function() {
//return this.replace(/[(^/s+)(/s+$)]/g،"");// قم بإزالة أحرف المسافة البيضاء في السلسلة
//إرجاع هذا.استبدال(/^/s+|/s+$/g"");
إرجاع this.replace(/^/s+/g،"").replace(//s+$/g،"");
}
JQuery1.4.2، المستخدمة من قبل Mootools
انسخ رمز الكود كما يلي:
وظيفة تقليم 1 (شارع) {
إرجاع str.replace(/^(/s|/xA0)+|(/s|/xA0)+$/g, '');
}
jQuery1.4.3، الذي يستخدمه النموذج الأولي، يزيل g لتحسين الأداء قليلاً، وله أداء أفضل عند معالجة السلاسل على نطاق صغير.
انسخ رمز الكود كما يلي:
وظيفة تقليم 2 (شارع) {
إرجاع str.replace(/^(/s|/u00A0)+/,'').replace(/(/s|/u00A0)+$/,'');
}
بعد إجراء اختبار الأداء، اقترح ستيفن ليفيثان أسرع طريقة لقص السلاسل النصية في JS، والتي تتمتع بأداء أفضل عند معالجة السلاسل الطويلة.
انسخ رمز الكود كما يلي:
وظيفة تقليم 3 (شارع) {
str = str.replace(/^(/s|/u00A0)+/,'');
for(var i=str. length-1; i>=0; i--){
إذا(//S/.test(str.charAt(i))){
str = str.substring(0, i+1);
استراحة؛
}
}
شارع العودة؛
}
آخر شيء يجب ذكره هو أن ECMA-262 (V5) يضيف طريقة القطع الأصلية (15.5.4.20) إلى السلسلة. بالإضافة إلى ذلك، تمت إضافة أساليب TrimLeft وtrimRight إلى String في محرك Molliza Gecko 1.9.1.