1.38.0pad
یک رشته را از هر دو طرف با کاراکترهای تکرارشونده پر میکند تا به طول مشخصشده برسد.
pad(value, length, chars):stringاعتبارسنجی length
مقدار length باید یک عدد صحیح بزرگتر یا مساوی صفر باشد. در غیر این صورت تابع یک RangeError با پیام "pad: length must be a non-negative integer" ایجاد میکند.
محاسبه طول با پشتیبانی Unicode
هم رشته اصلی و هم کاراکترهای padding با Array.from به آرایه تبدیل میشوند؛ بنابراین محاسبه طول بر اساس Unicode code point انجام میشود.
تقسیم padding
padding موردنیاز بین سمت چپ و راست تقسیم میشود. سمت چپ floor(paddingLength / 2) کاراکتر دریافت میکند و باقی کاراکترها به سمت راست میروند. بنابراین در padding فرد، سمت راست یک کاراکتر بیشتر خواهد داشت.
تکرار کاراکترهای padding
وقتی chars شامل چند کاراکتر باشد، کاراکترها به صورت چرخهای و با استفاده از index modulo تعداد کاراکترهای padding انتخاب میشوند.
وقتی padding لازم نیست
اگر value از قبل به طول هدف رسیده باشد یا طولانیتر باشد، یا chars خالی باشد، مقدار اصلی بدون تغییر برگردانده میشود.
پارامترها
valuestringالزامیرشتهای که باید padding شود.
lengthnumberالزامیطول هدف رشته نهایی. باید یک عدد صحیح غیرمنفی باشد.
charsstringاختیاریکاراکترهایی که برای padding استفاده میشوند. کاراکترها به صورت چرخهای تکرار میشوند.
" "مقدار بازگشتی
stringرشته اصلی که از دو طرف تا رسیدن به طول هدف padding شده است؛ یا در صورت عدم نیاز به padding، همان رشته اصلی.
خطاها
اگر length یک عدد صحیح غیرمنفی نباشد، RangeError ایجاد میکند.
مثالها
استفاده پایه
یک رشته را از هر دو طرف با فاصله پر میکند.
import { pad } from "@cyref/js";
pad("hello", 9);
// " hello "کاراکترهای سفارشی
استفاده از یک کاراکتر سفارشی برای padding.
pad("hello", 9, "*");
// "**hello**"چند کاراکتر برای padding
اگر چند کاراکتر برای padding داده شود، آنها به صورت چرخهای تکرار میشوند.
pad("hello", 11, "ab");
// "abhelloabab"طول padding فرد
اگر مقدار padding فرد باشد، سمت راست یک کاراکتر بیشتر از سمت چپ دریافت میکند.
pad("hello", 10, "-");
// "--hello---"عدم نیاز به padding
اگر رشته از قبل به اندازه طول هدف یا بزرگتر باشد، بدون تغییر برگردانده میشود.
pad("hello", 3);
// "hello"کاراکترهای padding خالی
اگر chars خالی باشد، padding انجام نمیشود و مقدار اصلی برگردانده میشود.
pad("hello", 10, "");
// "hello"کاراکترهای Unicode
طول هدف با Array.from محاسبه میشود؛ بنابراین طول بر اساس code pointهای Unicode محاسبه میشود، نه code unitهای UTF-16.
pad("😀", 3, "-");
// "-😀-"
طول نامعتبر
طول منفی یا غیرصحیح باعث ایجاد RangeError میشود.
pad("hello", -1);
// RangeError: pad: length must be a non-negative integer