javascripttrim, case conversion and replaceپاکسازی و جایگزینی متن در جاوااسکریپت
متن ورودی را در جاوااسکریپت با trim، تبدیل حروف و replace آماده کنید؛ فرق جایگزینی نخستین مورد با replaceAll و حفظ متن اصلی را ببینید.
مفهوم به زبان ساده
عنوانی که از فرم دریافت میشود ممکن است فاصلهٔ اضافی یا شکل نوشتاری متفاوت داشته باشد. روش trim فاصلههای ابتدا و انتهای رشته را حذف میکند؛ فاصلههای میان واژهها را دست نمیزند. روشهای toLowerCase و toUpperCase شکل حروف دارای حالت کوچک و بزرگ را تبدیل میکنند. این عملیات روی مقدار رشتهٔ قبلی نوشتن انجام نمیدهند و نتیجهٔ تازه میسازند.
در مثال، یک برچسب انگلیسی را ابتدا پاکسازی و سپس به حروف کوچک تبدیل میکنیم. بعد، replace با الگوی رشتهای فقط نخستین js را جایگزین میکند، ولی replaceAll هر دو مورد را تغییر میدهد. نامگذاری مرحلهٔ پاکسازی کمک میکند ببینیم هر تصمیم در کدام نقطه اعمال شده است. متن اولیه همچنان برای مقایسه یا نشاندادن ورودی اصلی در دسترس میماند.
پاکسازی باید به قرارداد داده احترام بگذارد. حذف همهٔ فاصلهها از نام یک شخص یا تغییر بیاعلام شناسه ممکن است اطلاعات معتبر را خراب کند. تبدیل حروف انگلیسی نیز حروف فارسی و عربی را خودکار یکسان نمیکند. برای تمرین، رشتهای فقط شامل فاصله و متنی بدون js را آزمایش کنید. همچنین جایگزینی متن، اعتبارسنجی یا ایمنسازی HTML نیست؛ خروجی آن را برای نمایش ورودی نامطمئن به textContent بدهید.
کجا به کار میآید؟
- آمادهکردن عنوان ورودی پیش از بررسی خالیبودن
- یکسانکردن برچسبهای انگلیسی یا جایگزینی متن مشخص
از تعریف تا یک مثال واقعی
const raw = ' JS JS ';
const normalized = raw.trim().toLowerCase();
console.log(normalized);
console.log(normalized.replace('js', 'JavaScript'));
console.log(normalized.replaceAll('js', 'JavaScript'));
console.log(raw.startsWith(' '));
js js JavaScript js JavaScript JavaScript true
این مثال چطور کار میکند؟
trim فاصلههای دو سر متن را حذف و toLowerCase حروف را کوچک میکند.
replace با الگوی رشتهای فقط نخستین مورد را عوض میکند.
replaceAll هر دو تطبیق را جایگزین میکند.
raw همچنان فاصلهٔ ابتدایی دارد؛ متن اولیه تغییر نکرده است.
اشتباه رایج
نتیجهٔ trim یا replace را دور نیندازید؛ این روشها متغیر اولیه را ویرایش نمیکنند. replaceAll با الگوی RegExp به پرچم g نیاز دارد.
این را به خاطر بسپارید
تبدیل متن را مرحلهای و بر اساس قرارداد انجام دهید و مقدار برگشتی را نگه دارید.