Gytyonline
مديريت كل انجمنها
پست: 899
عضو شده در: 14 شهریور 1384
محل سکونت: tehran
امتياز: 8184
|
عنوان: تابع Trim در جاوا اسکریپت |
|
|
سلام
اگر جزوه افرادی باشید که دستی در طراحی وب سایت دارند و با زبانهایی مثل جاوا اسکریپت آشنا هستند و درگیر، حتما مطلع هستید که در جاوا اسکریپت تابعی به اسم Trim تعبیه نشده خوب حالا اصلا این تابع Trim چی هست و به چه دردی میخورد ؟
تابع Trim همون طوری که از اسمش مشخص هستش وظیفهاش اینه که فضاهای خالی رو حذف کند مثلا ممکن هستش شما با تابع prompt یک اسمی رو از کاربر بگیرید مثل اسم شهر محل سکونت و براش یکسری جوابهایی مثل Tehran, shiraz, Ahvaz و غیره در نظر بگیرید که کاربر هرکدام از این شهرها رو که وارد کردش کد شهرش را به نمایش دهید، مثلا شما در شرطهای داخل برنامه مینویسید اگر جواب مساوی بود با "Tehran" و ... فلان کد را نمایش بده حالا اگر کاربر وارد کردش " Tehran " اون موقع تکلیف چیست؟ چون مسلما این دو کلمه Tehran به خاطر وجود فضاهای خالی برابر نیستند!! خوب اینجا است که تابع Trim به کمک برنامه نویس میاید و این فضاهای خالی را از بین میبرد ولی متاسفانه این تابع در جاوا اسکریپت تعبیه نشده و برنامه نویس خودش باید این تابع رو بر حسب نیازش بنویسد برای همین من 9 تا از بهترین کدهایی رو که برای این تابع نوشته شده است رو در زیر قرار میدم :
کد اول:
کد: |
return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); |
کد دوم:
کد: |
return str.replace(/^\s+/, '').replace(/\s+$/, ''); |
کد سوم:
کد: |
return str.substring(Math.max(str.search(/\S/), 0), str.search(/\S\s*$/) + 1); |
کد چهارم:
کد: |
return str.replace(/^\s+|\s+$/g, ''); |
کد پنجم:
کد: |
str = str.match(/\S+(?:\s+\S+)*/);
return str ? str[0] : ''; |
کد ششم:
کد: |
return str.replace(/^\s*(\S*(\s+\S+)*)\s*$/, '$1'); |
کد هفتم:
کد: |
return str.replace(/^\s*(\S*(?:\s+\S+)*)\s*$/, '$1'); |
کد هشتم:
کد: |
return str.replace(/^\s*((?:[\S\s]*\S)?)\s*$/, '$1'); |
کد نهم:
کد: |
return str.replace(/^\s*([\S\s]*?)\s*$/, '$1'); |
که مسلما هر کدام از این کدها سرعت مختلفی را دارند که ممکن است بعضی از این کدهادر مرورگرهای قدیمی جواب دلخواه را ندهند مخصوصا IE .
برای دیدن توضیحات هر کد به منبع که در زیر معرفی میکنم بروید یا اگر سوالی بود همین جا مطرح کنید.
موفق باشید.
منبع :
کد: |
http://blog.stevenlevithan.com/archives/faster-trim-javascrip |
|
|