1.38.0truncate
یک رشته را به حداکثر طول مشخص کوتاه میکند و در صورت نیاز یک رشته حذفکننده به انتهای آن اضافه میکند.
truncate(value, length, omission):stringاعتبارسنجی length
پارامتر length باید یک عدد صحیح نامنفی باشد. در غیر این صورت truncate یک RangeError با پیام "truncate: length must be a non-negative integer" ایجاد میکند.
محاسبه طول با پشتیبانی از Unicode
رشته ورودی و omission با Array.from به آرایه تبدیل میشوند و سپس طول یا بخش موردنیاز آنها محاسبه میشود. بنابراین code pointهای Unicode مانند emojiهایی که از surrogate pair تشکیل شدهاند بهعنوان یک کاراکتر در نظر گرفته میشوند.
رفتار omission
مقدار پیشفرض omission برابر با "..." است. اگر طول omission برابر یا بیشتر از length باشد، فقط length code point اول omission برگردانده میشود. در غیر این صورت، متن اصلی به اندازهای کوتاه میشود که فضای کافی برای کل omission باقی بماند.
رفتار مقدار بازگشتی
اگر مقدار ورودی از length بیشتر نباشد، همان مقدار اصلی برگردانده میشود. در صورت نیاز به کوتاهسازی، بخش باقیمانده از متن به همراه omission برگردانده میشود.
پارامترها
valuestringالزامیرشتهای که باید کوتاه شود.
lengthnumberالزامیحداکثر تعداد code pointهای Unicode مجاز در نتیجه.
omissionstringاختیاریرشتهای که هنگام کوتاه شدن مقدار به انتهای نتیجه اضافه میشود.
"..."مقدار بازگشتی
stringاگر رشته در طول تعیینشده جا شود، همان رشته اصلی را برمیگرداند؛ در غیر این صورت، رشته کوتاهشده به همراه omission برگردانده میشود.
خطاها
اگر length یک عدد صحیح نامنفی نباشد، یک RangeError ایجاد میکند.
مثالها
استفاده پایه
متن طولانی کوتاه میشود و omission پیشفرض به انتهای آن اضافه میشود.
truncate("Hello World", 8);
// "Hello..."omission سفارشی
میتوان یک رشته سفارشی برای omission مشخص کرد.
truncate("Hello World", 8, "…");
// "Hello W…"رشته در طول تعیینشده جا میشود
اگر طول رشته از حد تعیینشده بیشتر نباشد، مقدار اصلی بدون تغییر برگردانده میشود.
truncate("Hello", 10);
// "Hello"طول کمتر از omission
وقتی طول omission برابر یا بیشتر از طول تعیینشده باشد، فقط ابتدای omission تا طول موردنظر برگردانده میشود.
truncate("Hello World", 2, "...");
// ".."طول صفر
اگر طول صفر باشد و رشته نیاز به کوتاه شدن داشته باشد، نتیجه یک رشته خالی خواهد بود.
truncate("Hello", 0);
// ""کاراکترهای Unicode
کوتاهسازی با استفاده از Array.from، code pointهای Unicode را میشمارد.
truncate("Hello 😀 World", 8);
// "Hello 😀..."مقدار خالی
ورودی خالی همیشه یک رشته خالی برمیگرداند.
truncate("", 5);
// ""