String.prototype.padStart()‎

من موسوعة حسوب

الدالة String.prototype.padStart()‎ تحشو السلسلة النصية الحالية من بدايتها بإضافة السلسلة النصية المُعطاة (مع تكرارها إن لزم) لإنشاء سلسلة نصية جديدة لها طول معيّن.

البنية العامة

str.padStart(targetLength [, padString])

targetLength

طول السلسلة النصية الناتجة بعد إضافة الحاشية، وإذا كانت القيمة أقل من طول السلسلة النصية الحالي، فستُعاد السلسلة النصية كما هي.

padString

السلسلة النصية التي ستُضاف إلى السلسلة النصية الحالية. وإذا كانت طويلة جدًا مما لا يجعلها تتسع في الطول المُحدَّد فستُقصّ وتُطبَّق بدايتها على السلسلة النصية الأصلية. القيمة الافتراضية لهذا الوسيط هي الفراغ " " (أي U+0020)

القيمة المعادة

سلسلة نصية مع إضافة حاشية في بدايتها.

أمثلة

استخدام padStart()‎

'abc'.padStart(10);         // "       abc"
'abc'.padStart(10, "foo");  // "foofoofabc"
'abc'.padStart(6,"123465"); // "123abc"
'abc'.padStart(8, "0");     // "00000abc"
'abc'.padStart(1);          // "abc"

تعويض نقص دعم المتصفحات

أُضيفَت هذه الدالة لأوّل مرة في معيار ECMAScript 2017، وما يزال دعمها محدودًا، لذا يمكنك الاستعانة بالشيفرة الآتية لتعريفها:

// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js
if (!String.prototype.padStart) {
    String.prototype.padStart = function padStart(targetLength,padString) {
        targetLength = targetLength>>0; //floor if number or convert non-number to 0;
        padString = String(padString || ' ');
        if (this.length > targetLength) {
            return String(this);
        }
        else {
            targetLength = targetLength-this.length;
            if (targetLength > padString.length) {
                padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
            }
            return padString.slice(0,targetLength) + String(this);
        }
    };
}

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي 57 48 غير مدعومة 44 10

على النقيض من متصفح IE، يدعم Edge هذه الميزة بدءًا من الإصدار 15.

مصادر ومواصفات