لا يمثل JavaScript حرفًا واحدًا ، فقط نوع سلسلة سلسلة ، ونوع الحرف يعادل سلسلة تحتوي على حرف واحد فقط.
سلسلة السلسلة هي نوع بيانات أساسي من JavaScript. في الوقت نفسه ، يدعم JavaScript أيضًا كائنات السلسلة ، وهو كائن غلاف ذو قيم أصلية. يتحول JavaScript تلقائيًا بين النموذج الأصلي وشكل الكائن عند الحاجة. ستقدم هذه المقالة كائن السلسلة الأصلي وكائن crosper السلسلة
تعريف
نوع السلسلة عبارة عن سلسلة من الأحرف التي تتكون من أحرف Unicode 16 بت مرفقة في عروض الأسعار.
غالبًا ما يتم استخدام أنواع الأوتار لتمثيل البيانات النصية ، وفي هذا الوقت يعتبر كل عنصر في السلسلة نقطة رمز. يعتبر كل عنصر يشغل موقفًا في هذا التسلسل ، وفهرسة هذه المواقف بقيم غير سالبة. تبدأ الشخصية الأولى في الموضع 0 ، الشخصية الثانية في الموضع 1 ، وهكذا
طول السلسلة هو عدد العناصر (على سبيل المثال ، قيمة 16 بت). السلسلة الفارغة لها طول صفر ، لذلك لا تحتوي على أي عناصر
ترميز Unicode
يمكن كتابة جميع الأحرف في شكل "/uxxxx" ، حيث يمثل XXXX ترميز الحرف Unicode. على سبيل المثال ، /u00a9 يمثل رمز حقوق الطبع والنشر
var s = '/u00a9' ؛ s // "©"
إذا كانت السلسلة تحتوي على بيانات نصية فعلية ، فإن كل عنصر يعتبر وحدة UTF-16 منفصلة. يتم تخزين كل حرف بتنسيق 16 بت (أي 2 بايت) UTF-16 داخل JavaScript
لكن لدى UTF-16 طولان: بالنسبة للأحرف بين U+0000 و U+FFFF ، يكون الطول 16 بت (أي 2 بايت) ؛ بالنسبة للأحرف بين U+10000 و U+10ffff ، يبلغ الطول 32 بت (أي 4 بايت) ، والأول بايتان بين 0xd800 و 0xdbff ، والأخير بايتان بين 0xDC00 و 0xDFFFF ، والأخير بايتان بين 0xDC00 و 0xdffffffff.
على سبيل المثال ، تتم كتابة الحرف "?" المقابل لـ U+1D306 كـ UTF-16 ، وهو 0xD834 0xDF06. سوف يتعرف المتصفح بشكل صحيح على هذه البايتات الأربعة كحرف واحد ، ولكن يتم تثبيت طول الحرف داخل JavaScript دائمًا إلى 16 بت ، وسيتم التعامل مع هذه البايتات الأربعة كحرفين.
var s = '/ud834/udf06' ؛ s // "?" s.length // 2
لأحرف Unicode 4 بايت من U+10000 إلى U+10FFFF ، يتم دائمًا معاملة JavaScript كحرفتين (سمة طول الحرف هي 2)
علامات اقتباس
يتم الإعلان عن سلسلة السلسلة بواسطة عروض أسعار مزدوجة (") أو عروض أسعار واحدة ('). تعلن Java سلاسل مع علامات اقتباس مزدوجة وأحرف مع علامات اقتباس واحدة. نظرًا لأن ECMASCRIPT لا يحتوي على نوع من الحرف ، يمكن استخدام أي من هذين التمييزين ، ولكن يجب أن تتطابق الاقتباسات اليمنى واليسرى.
// الصحيح var scolor1 = "red" ؛ var scolor2 = 'red' ؛ // error var scolor1 = "red '؛ var scolor2 =' red" ؛
يمكن أن تحتوي السلسلة المحددة بواسطة عروض أسعار فردية على علامات اقتباس مزدوجة ، ويمكن أن تحتوي السلسلة المحددة بواسطة عروض أسعار مزدوجة أيضًا على علامات اقتباس واحدة.
"key =" value "" "إنها رحلة طويلة"
قد يتم خلط رمز JavaScript مع سلاسل من كود HTML ، وسيتم خلط رمز HTML أيضًا برمز JavaScript. لذلك ، من الأفضل استخدام أنماط اقتباس منفصلة في JavaScript ورمز HTML لكل منهما
يتم استخدام عروض أسعار واحدة لتمثيل سلاسل في JavaScript ، وتستخدم عروض الأسعار المزدوجة لتمثيل السلاسل في معالجات الأحداث HTML
<button onClick = "Alert ('Thank')"> انقر فوق لي </button>التراجع
إذا كنت ترغب في استخدام عروض أسعار مفردة في سلسلة مقتبسة واحدة محددة ، أو عروض أسعار مزدوجة في سلسلة محددة مزدوجة ، فأنت بحاجة إلى استخدام عرقلة خلفية (/)
المواقف الشائعة هي أن الفاصلة الفاصلة والاقتباسات الفردية للاختصار الإنجليزي والكتابة التملك هي نفس الشخصية ، لذلك يجب عليك استخدام عرقلة خلفية (/) للهروب من الفاصلة.
"أليس كذلك/تفضل هذا الكتاب؟" // "ألا تفضل هذا الكتاب؟" هل قالت/"مرحبًا/"؟ "؟ // "هل قالت" مرحبا "؟" "هل قالت/" مرحبا/"؟"؟ // "هل قالت" مرحبا "؟"
شخصيات متعددة الخطوط
بشكل افتراضي ، لا يمكن كتابة السلاسل إلا في سطر واحد ، وإذا تم تقسيمها إلى خطوط متعددة ، فسيقومون بالإبلاغ عن خطأ.
// خطأ في بناء الجملة: رمز غير صالح أو غير متوقع
'أ
ب
ج '؛
في ecmascript3 ، يجب كتابة السلاسل في سطر واحد
في ECMASCRIPT5 ، يمكن تقسيم السلاسل إلى خطوط ، يجب أن ينتهي كل سطر مع تراجع خلفي (/)
إذا كنت تريد بدء سطر جديد بكمية مباشرة سلسلة ، فيمكنك استخدام أحرف الهروب /n
// "onelongline" 'One/Long/Line'/*"twolines"*/'Two/Nlines'
الهروب من الشخصيات
في سلاسل JavaScript ، يتمتع Backslashes (/) باستخدامات خاصة. لا تمثل إضافة شخصية بعد رمز الذروة الخلفية معانيها الحرفية. يتم استخدامها لتمثيل بعض الشخصيات الخاصة ، تسمى شخصيات Escape
/0 بايت فارغة
/ن
/ttable
/ب الفضاء
/ص
/F ورقة تغذية
// SLASH
/'اقتباسات واحدة
/"اقتباسات مزدوجة
/XNN يمثل حرفًا في NN Quexadecimal (N IS 0-F) ، مثل /x41 يمثل 'a'
/unnnn في nnnn سداسي عشري تمثل حرف Unicode (n هو 0-f) ، مثل /u03a3 يمثل الحرف اليوناني ε
إذا تم استخدام ضربة خلفية قبل حرف غير مخصص ، يتم حذف الانزلاق الخلفي
'/a' // "a"
إذا احتاجت السلسلة إلى احتواء ملاذ خلفي ، فيجب إضافته مرة أخرى من الانزلاق الخلفي قبل الذروة الخلفية للهروب من نفسه
"Prev // Next" // "Prev / Next"
سمات
السلاسل في جافا سكريبت غير قابلة للتغيير. بمجرد إنشاء سلسلة ، لا يمكن تغييرها أبدًا. لتغيير السلسلة المحفوظة بواسطة متغير ، قم أولاً بتدمير السلسلة الأصلية ، ثم املأ المتغير بسلسلة أخرى تحتوي على القيمة الجديدة
يمكن إنشاء سلسلة جديدة عن طريق تسلسل السلاسل الأخرى من خلال مشغل +.
var lang = "java" ؛ lang = lang + "script" ؛ // 'JavaScript'
العملية الفعلية للرمز أعلاه هي: أولاً قم بإنشاء سلسلة جديدة يمكنها عقد 10 أحرف ، ثم ملء هذه السلسلة مع "Java" و "Script". الخطوة الأخيرة هي تدمير الأوتار الأصلية "Java" و "Script" ، لأن هاتين السلاسلان عديمة الفائدة
تحدث هذه العملية في الخلفية وهي أيضًا السبب وراء بطيئة سلاسل المقتطف في بعض المتصفحات القديمة (IE6) ، لكن الإصدارات اللاحقة من المتصفح قد حلت مشكلة عدم الكفاءة هذه
بدوره سلسلة
هناك طريقتان لتحويل قيمة إلى سلسلة ، tostring () و string ()
[ملاحظة] يمكنك استخدام سلسلة فارغة "" + قيمة لتحويل القيمة إلى سلسلة
tostring ()
الأول هو استخدام طريقة ToString () التي يتمتع بها كل قيمة تقريبًا. تقوم هذه الطريقة بإرجاع تمثيل السلسلة للقيمة المقابلة
[ملاحظة] غير محدد و NULL ليس لديهم هذه الطريقة
undefined.toString () ؛ // error null.toString () ؛ // error true.toString () ؛ // 'true'false.toString () ؛ كائن] [1،2،3،4] .ToString () ؛ // '1،2،3،4' (تاريخ جديد ()).
خيط()
يمكنك استخدام سلسلة وظيفة التحويل () عندما لا تعرف ما إذا كانت القيمة التي تريد تحويلها غير محددة أو خالية.
تتبع سلسلة وظيفة التحويل () القواعد التالية:
【1】 إذا كانت القيمة لاغية ، فإن إرجاع "فارغ" ؛ إذا كانت القيمة غير محددة ، فالتراجع "غير محدد"
【2】 إذا لم تكن القيمة لاغية أو غير محددة ، فاستدعاء طريقة ToString () وإرجاع قيمة النوع الأصلي
【3】 إذا كان الكائن الذي يتم إرجاعه بواسطة طريقة ToString () ، فاستدعاء طريقة ValueOF () لإرجاع قيمة النوع الأصلي. إذا تم إرجاع الكائن الذي تم إرجاعه بواسطة طريقة ValueOF () ، فسيتم الإبلاغ عن خطأ
// "3" string ({toString: function () {return 3 ؛}}) // "[Object Object]" String ({valueof: function () {return 2 ؛}}) // "3" 3 "سمة الطول
كل مثيل من نوع السلسلة لديه سمة طول ، تشير إلى عدد الأحرف في السلسلة. نظرًا لأن السلاسل غير قابلة للتغيير ، فإن طول الأوتار غير قابلة للتغيير أيضًا.
لا يتم تعداد سمة طول السلسلة في الحلقة لـ/في الحلقة ، ولا يمكن حذفها من خلال مشغل الحذف.
[ملاحظة] للسلسلة S ، فهرس الحرف الأخير هو S.Length - 1
var str = "test" ؛ console.log (str.length) ؛ // 4str.length = 6 ؛ console.log (str ، str.length) ؛ // "test" ، 4
مثال طريقة
الكائن طريقة شائعة
نوع السلسلة هو نوع غلاف يتوافق مع سلسلة ، ويرث الطرق الثلاث للطرق العامة للكائن TOSTRING () ، tolocalestring () ، و valueof ().
【tostring ()】
تقوم طريقة tostring () بإرجاع قيمة السلسلة الأصلية للسلسلة
【tolocalestring ()】
طريقة tolocalestring () تُرجع قيمة السلسلة الأصلية للسلسلة
【valueof ()】
تقوم طريقة ValueOF () بإرجاع قيمة السلسلة الأصلية للسلسلة
console.log ("test" .valueof ()) ؛ // "test" console.log ("test" .ToString ()) ؛ // "test" console.log ("test" .tolocalestring ()) ؛ // "test"طرق الوصول إلى الأحرف
هناك أربع طرق للوصول إلى الأحرف في الأوتار: Chartat () و Brackets [] و charcodeat () و fromcharcode ().
【chartat ()】
تتلقى طريقة charat () معلمة بناءً على موضع الحرف من 0 وإرجاع الحرف في الموضع المحدد. عندما تكون المعلمة فارغة أو NAN ، فإن المعلمة الافتراضية هي 0 ؛ عندما تكون المعلمة خارج النطاق ، يتم إرجاع سلسلة فارغة
var str = "hello" ؛ console.log (str.charat (1)) ؛ // econsole.log (str.charat (-1)) ؛ // '' 'console.log (str.charat (10)) ؛ //' '' console.log (str.charat ()) ؛
تتضمن طريقة Charat () تحويل النوع الضمني لوظيفة الرقم (). إذا تم تحويلها إلى قيمة رقمية ، فسيتم إخراج السلسلة وفقًا للقواعد المذكورة أعلاه ؛ إذا تم تحويلها إلى NAN ، فسيتم إخراج الحرف 0.
var str = "hello" ؛ console.log (str.charat (true)) ؛ // 'e'console.log (str.charat (false)) ؛ //' h'console.log (str.charat ('abc')) ؛ // 'h'console.log (str.charat ([ملاحظة] نتائج X.charat (pos) و X.SubString (pos ، pos+1) ، x.substr (pos ، 1) ، x.slice (pos ، pos+1) تساوي بعضها البعض.
var str = "hello" ؛ console.log (str.charat (1)) ؛ // 'e'console.log (str.substring (1،2)) ؛ //' e'console.log (str.slice (1،2)) ؛ // 'e'console.log (str.substr (1،1)) ؛
【الفروع】
يعرّف ECMASCript5 طريقة أخرى للوصول إلى الأحرف ، باستخدام أقواس مربعة بالإضافة إلى فهارس رقمية للوصول إلى أحرف محددة في سلسلة. إذا كانت المعلمة خارج النطاق أو نان ، فإن الإخراج غير محدد ؛ إذا لم يكن هناك معلمة ، فسيتم الإبلاغ عن خطأ ؛ لا تحتوي هذه الطريقة على تحويل النوع الضمني لوظيفة تحويل الرقم () ، ولكن يمكن تحويل المعلمة إلى قيمة رقمية عندما تكون مجموعة من القيم المفردة.
[ملاحظة] لا يدعم IE7 Browser
var str = "hello" ؛ console.log (str [0]) ؛ // hconsole.log (str [[1]]) ؛ // econsole.log (str [false]) ؛ // undefinedConsole.log (str [-1]) ؛ // undefinedconsole.log (str [nan]) ؛
【charcodeat ()】
تشبه طريقة charcodeat () طريقة charat () ، والتي تتلقى معلمة استنادًا إلى موضع الحرف 0 ، ولكنها تُرجع ترميز أحادي البهجة 16 بت من الحرف المحدد. قيمة الإرجاع هي عدد صحيح 16 بت ، بين 0-65535 ، أي بين 0x0000-0xffff
عندما تكون المعلمة فارغة أو NAN ، فإن المعلمة الافتراضية هي 0 ؛ عندما تكون المعلمة خارج النطاق ، يتم إرجاع NAN.
var str = "Hello" ؛ console.log (str.charcodeat ()) ؛ // 104console.log (str.charcodeat (0)) ؛ // 104console.log (str.charcodeat (1)) ؛ // 1 01console.log (str.charcodeat (-1)) ؛ // nanconsole.log (str.charcodeat (10)) ؛ // nanconsole.log (str.charcodeat (nan)) ؛ // 104
وبالمثل ، تتضمن طريقة charcodeat () تحويل النوع الضمني لوظيفة الرقم (). إذا تم تحويلها إلى قيمة رقمية ، فسيتم إخراج القيمة المقابلة وفقًا للقواعد المذكورة أعلاه ؛ إذا تم تحويلها إلى NAN ، فسيتم إخراج حرف الحرف 0.
var str = "Hello" ؛ console.log (str.charcodeat (true)) ؛ // 101Console.log (str.charcodeat (false)) ؛ // 104console.log (st R.CharCodeat ('ABC')) ؛ // 104Console.log (str.charcodeat ({{})) ؛ // 104console.log (str.charcodeat ([2])) ؛ // l08【من charcode ()】
يحتوي مُنشئ السلسلة نفسه على طريقة ثابتة: From Charcode (). تتمثل مهمة هذه الطريقة في تلقي ترميزات أحرف واحدة أو أكثر ثم تحويلها إلى سلسلة. في الأساس ، تقوم هذه الطريقة بالعملية المعاكسة من طريقة المثيل charcodeat (). إذا كانت المعلمة فارغة و NAN ، يتم إرجاع سلسلة فارغة ؛ إذا تجاوزت المعلمة نطاق 0-65535 ، فإن أحرف الإخراج لا يمكن السيطرة عليها.
console.log (string.fromcharcode (104،101،108،1111))) ؛ match'console.log (string.fromcharcode ()) ؛ // '' console.log (string.fromcharcode (nan)) ؛ // '' 'console.log (string.fromcharcode (-1)) ؛ console.log (string.fromcharcode (65560)) ؛
إذا كانت هناك شخصية تستغرق أربعة بايت ، فيجب تقسيمها إلى حرفين.
console.log (string.fromcharcode (0xd842 ، 0xDFB7)) ؛ // "�line"
خياطة خيط
هناك طريقتان لخياطة السلسلة: COST () و SIGN +
【concat ()】
يتم استخدام طريقة CORCAT () لصق سلاسل أو أكثر وإعادة السلسلة الجديدة التي تم الحصول عليها عن طريق الربط ، في حين أن السلسلة الأصلية لا تتغير. إذا لم تكن المعلمة (باستثناء المعلمة الأولى) سلسلة ، فسيتم تحويلها ضمنيًا إلى سلسلة من خلال طريقة السلسلة () ، ثم يتم تنفيذ الربط السلسلة.
var stringValue = 'hello' ؛ var result = stringValue.Concat ('World' ، '!') ؛ console.log (result) ؛ // 'hello world!' console.log (stringValue) ؛ // 'hello'[ملاحظة] يمكن أن تكون المعلمة الأولى فقط سلسلة. إذا كان من أنواع أخرى (باستثناء المصفوفات) ، فسيتم الإبلاغ عن خطأ.
(1) .concat ('2') ؛ // الإبلاغ عن خطأ
(صواب) .concat ('false') ؛ // الإبلاغ عن خطأ
({}). concat ('abc') ؛ // الإبلاغ عن خطأ
[ملاحظة] نظرًا لأن المصفوفة تحتوي أيضًا على طريقة CORCAT () ، ستحدد المعلمات كيفية التحويل وفقًا لما إذا كانت المعلمة التي تظهر أولاً هي صفيف أو سلسلة.
"1،2،3 ، '. concat ([4،5]) ؛ //' 1،2،3،4،5 '
[1،2،3] .concat ('، 4،5') ؛ // [1 ، 2 ، 3 ، "، 4،5"]
【Plus Operator (+)】
على الرغم من أن CONCAT () هي طريقة تستخدم خصيصًا لصق السلاسل ، إلا أن استخدام المزيد من المشغل (+) في الممارسة العملية. غالبًا ما يكون استخدام المشغل Plus أبسط من Concat ()
var stringValue = 'hello' ؛ console.log (stringValue.concat ('World' ، '!') ؛ // 'Hello World![ملاحظة] يتم إجراء خياطة السلسلة عندما يكون أحد المعاملات عبارة عن سلسلة ، أو إذا تم تحويل الكائن إلى سلسلة
1 + 2 ؛ // 3'1 ' + 2 ؛ //' 12'var o = {valueof: function () {return '1' ؛}} ؛ o + 2 ؛ // '12'var o = {valueof: function () {return 1 ؛}} ؛ o + 2 ؛ // 3 ؛إنشاء سلاسل أساسية
هناك ثلاث طرق لإنشاء سلاسل أساسية: slice () ، sentstr () و substring ().
【شريحة()】
تتطلب طريقة Slice (START ، END) اثنين من المعلمتين بدءًا ونهاية ، مما يؤدي إلى إرجاع سلسلة فرعية في هذه السلسلة من الحرف في موضع البداية إلى (ولكن لا تحتوي) على الحرف في الموضع النهائي ؛ إذا كانت النهاية غير محددة أو غير موجودة ، فإنها تُرجع جميع الأحرف من موضع البداية إلى نهاية السلسلة
إذا كان البدء رقمًا سالبًا ، ابدأ = الحد الأقصى (الطول + البدء ، 0)
إذا كانت النهاية عبارة عن رقم سالب ، end = max (length + end ، 0)
لا يمكن للبدء والنهاية تبادل المواقف
var stringValue = 'hello world' ؛ console.log (stringValue.slice ()) ؛ // 'hello world'console.log (stringValue.slice (2)) ؛ //' llo world'console.log (stringvalue.slice (2 ، undefined)) ؛ // 'llo) ؛ World'console.log (StringValue.slice (2 ، -5)) ؛ // 'llo "console.log (stringValue.slice (2 ، -20)) ؛ // '' console.log (stringValue.slice (20)) ؛ // '' console.log (stringValue.slice (-2،2)) ؛ console.log (stringValue.slice (-2،20)) ؛ // 'ld'console.log (stringValue.slice (-20،2)) ؛ //' He'Console.log (StringValue.slice (-20 ، -2)) ؛ // 'hello wor'
تتضمن طريقة الشريحة () تحويل النوع الضمني للرقم () وظيفة التحويل. عندما يتم تحويل البداية إلى NAN ، فإنه يعادل البدء = 0 ؛ عندما يتم تحويل النهاية إلى NAN (باستثناء النهاية غير محددة) ، يتم إخراج سلسلة فارغة
var stringValue = 'Hello World' ؛ console.log (stringValue.slice (nan)) ؛ // 'Hello world'console.log (stringValue.slice (0 ، nan)) ؛ // '' console.log (stringValue.slice (true ، [3])) ؛ World'console.log (StringValue.slice ('2' ، [5])) ؛ // 'llo'【substring ()】
تتطلب طريقة Subctring (START ، END) معلمتين بدءًا ونهاية ، مما يؤدي إلى إرجاع سلسلة فرعية في هذه السلسلة من الحرف في موضع البداية إلى (ولكن لا تحتوي) على الحرف في الموضع النهائي ؛ إذا كانت النهاية غير محددة أو غير موجودة ، فإنها تُرجع جميع الأحرف من موضع البداية إلى نهاية السلسلة
إذا كانت أي من المعلمة نان أو سلبية ، يتم استبدالها بـ 0
إذا كانت أي معلمة أكبر من طول السلسلة ، فسيتم استبدالها بطول السلسلة
إذا كانت البداية أكبر من النهاية ، فسيتم تبديل قيمها
var stringValue = 'hello world' ؛ console.log (stringValue.SubString ()) ؛ // 'hello world'console.log (stringValue.SubString (2)) ؛ //' llo World'console.log (StringValue.SubString (2 ، undeled)) ؛ // 'llo. world'console.log (StringValue.SubString (20)) ؛ // '' 'console.log (stringValue.SubString (-2،2)) ؛ //' He'Console.log (StringValue.s UBSTRING (NAN ، 2)) ؛ // 'He'Console.log (StringValue.SubString (-2،20)) ؛ //' He'Console.log (StringValue.SubString (-2،20)) ؛ // 'hello world'console.log (StringValue.SubString (3،2)) ؛ // 'l'console.log (stringValue.SubString (3 ، nan)) ؛ //' hel "console.log (stringValue.SubString (-20،2)) ؛ // 'He'Console.log (StringValue.SubString (-20 ، -2)) ؛ //' '' '' '' '' '' '
وبالمثل ، تتضمن طريقة Substring () أيضًا تحويل النوع الضمني للرقم () وظيفة تحويل الرقم ()
var stringValue = 'hello world' ؛ console.log (stringValue.SubString (true ، [3])) ؛ world'console.log (stringValue.SubString ({})) ؛ // 'hello world'console.log (stringValue.SubString (' 2 '، [5])) ؛ //' llo '【SUNSTR ()】
تتطلب طريقة Substr (start ، end) معلمتين بدء ونهاية. يمثل النهاية عدد الأحرف في الفرعية التي تم إرجاعها ؛ تقوم هذه الطريقة بإرجاع مجموعة من الأحرف النهائية التي تبدأ من الحرف في موضع البداية في هذه السلسلة ؛ إذا كانت النهاية غير محددة أو غير موجودة ، فإنها تُرجع جميع الأحرف من موضع البداية إلى نهاية السلسلة
إذا كان البدء رقمًا سالبًا ، ابدأ = الحد الأقصى (الطول + البدء ، 0)
إذا كانت البداية نان ، فمن المعادل البدء = 0
إذا كان النهاية رقمًا سالبًا أو نانًا ، فأدى = 0 ، وبالتالي يتم إرجاع سلسلة فارغة
لا يمكن للبدء والنهاية تبادل المواقف
[ملاحظة] هذه الطريقة ليست معيار ecmascript وتم إهمالها
[ملاحظة] IE8-يواجه المتصفح مشكلة في التعامل مع الموقف الذي يتم فيه تمرير القيم السلبية إلى Substr () ، فإنه يعيد السلسلة الأصلية
var stringValue = 'hello world' ؛ console.log (stringValue.substr ()) ؛ // 'hello world'console.log (stringValue.substr (2)) ؛ //' llo world'console.log (stringvalue.substr (2 ، undefined)) ؛ world'console.log (stringValue.substr (2 ، nan)) ؛ // '' console.log (stringValue.substr (nan ، 2)) ؛ // 'He'Console.log (stringValue.substr (20)) ؛ //' console.log (stringv alue.substr(-2,3));//'ld'console.log(stringValue.substr(-2,20));//'ld'console.log(stringValue.substr(-20,2));//''''''''''''''''''''''''''''''''''''''''''' "'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. console.log (StringValue.Substr (2،5)) ؛ // llo w
وبالمثل ، تتضمن طريقة Substr () أيضًا تحويل النوع الضمني للرقم () وظيفة تحويل الرقم ()
var stringValue = 'hello world' ؛ console.log (stringValue.substr (true ، [3])) ؛ World'console.log (StringValue.substr ('2' ، [5])) ؛ // 'llo w'موقف السلسلة
هناك طريقتان للعثور على موقع السلاسل من السلاسل: indexof () و LastIndexof ()
【indexof ()】
تستقبل طريقة indexof (SearchString ، START) معلمتين: SearchString و START ، وإعادة الموقع حيث يظهر SearchString أولاً ، وإذا لم يتم العثور عليه ، فإنه يعود -1
تستدعي هذه الطريقة ضمنيًا وظيفة التحويل String () لتحويل قيمة SearchString غير السلسلة إلى سلسلة ؛ يستدعي ضمنيًا وظيفة التحويل الرقم () لتحويل القيمة غير الرقمية (باستثناء غير محددة) إلى قيمة رقمية إلى قيمة رقمية
يمثل SearchString الفرعية المراد تفتيشها ؛ يمثل البداية موضع البداية للبحث. إذا تم تجاهل المعلمة أو أن المعلمة غير محددة ، أو NAN أو سلبية ، ابدأ = 0
var string = 'Hello World World '؛ console.log (string.indexof (' ld ')) ؛ // 9console.log (string.indexof (' ld '، undefined)) ؛ // 9console.log (string.indexof (' ld '، nan)) ؛ // 9console.log (string.indexof (' ld '،-1) ring.indexof ('ld' ،-1)) ؛ // 9console.log (string.indexof ('ld' ،-1)) ؛ // 9console.log (string.indexof ( 'ld' ،-1)) ؛ // 9console.log (string.indexof ('ld' ،-1)) ؛ // 9console.log (string.indexof ('ld' ،-1)) ؛ // 9 console.log (string.indexof ('ld' ، 10)) ؛ // 15console.log (string.indexof ('ld' ، [10])) ؛ // 15console.log (string.index of ('true' ، [10])) ؛ //-1console.log (string.indexof (false ، [10])) ؛ //-1console.log (string.indexof (false ، [10])) ؛ //-1【LastIndexof ()】
تستقبل طريقة LastIndExof (SearchString ، Start) معلمتين: SearchString و Hart ، ويعيد آخر مرة يظهر فيها SearchString. إذا لم يتم العثور عليه ، فإنه يعود -1
وبالمثل ، تستدعي هذه الطريقة ضمنيًا وظيفة التحويل السلسلة () لتحويل قيم SearchString غير السلسلة إلى سلاسل ؛ يستدعي ضمنيًا وظيفة التحويل الرقم () لتحويل القيم غير الرقمية (باستثناء غير محددة) إلى قيم رقمية.
يمثل SearchString الفرعية المراد تفتيشها ؛ يمثل البداية موضع البداية للبحث. إذا تم تجاهل المعلمة أو أن المعلمة غير محددة أو NAN ، ابدأ = الطول - 1
[ملاحظة] بخلاف طريقة indexof () ، إذا كانت البداية سلبية ، فإن الطريقة تُرجع -1
var string = 'Hello World World' ؛ console.log (string.indexof ('ld')) ؛ // 9console.log (string.indexof ('ld' ، undefined)) ؛ // 9console.log (string.indexof ('ld' ، nan)) ؛ console.log (string.indexof ('ld' ، 10)) ؛ // 15console.log (string.indexof ('ld' ، [10])) ؛ // 15console.log (string.index of ('true' ، [10])) ؛ //-1console.log (string.indexof (false ، [10])) ؛ //-1console.log (string.indexof (false ، [10])) ؛ //-1【نصائح】 اكتشف جميع عمليات السندات التي تلبي معايير السلسلة
يمكن العثور على جميع الأساسيات المطابقة عن طريق Looping لاتصال INDEXOF () أو LastIndexof ()
الدالة allIndexof (str ، value) {var result = [] ؛ var pos = str.indexof (value) ؛ بينما (pos> -1) {result.push (pos) ؛ pos = str.indexof (value ، pos+value.length) ؛} نتيجة الإرجاع ؛} console.log (allindexof ('hellhellhell' ، 'll')) ؛ // [2،7،12]【تقليم()】
يحدد ECMASCript5 طريقة TRIM () لجميع الأوتار. تنشئ هذه الطريقة نسخة من السلسلة ، ويحذف جميع الأحرف الفارغة في البادئة واللاحقة ، ويعيد النتيجة
نظرًا لأن طريقة TRIM () تُرجع نسخة من السلسلة ، فستبقى مسافات البادئة واللاحقة في السلسلة الأصلية دون تغيير
[ملاحظة] لا يدعم IE8-Browser
var string = 'hello world' ؛ console.log (string.trim ()) ؛ // 'hello world'console.log (string) ؛ //' Hello World '
لا تتضمن أحرف المسافة البيضاء المساحات فحسب ، ولكن أيضًا أحرف Tab (/T) وكفاح الأسطر (/N) وأحرف إرجاع النقل (/R)
'/r/nabc /t'.trim () //' ABC '
بالإضافة إلى ذلك ، تدعم Firefox و Safari و WebKit أيضًا Trimright غير القياسي () لحذف شخصيات المسافة البيضاء في نهاية الأوتار
var string = 'hello world' ؛ console.log (string.trimright ()) ؛ // 'hello world' ؛
【نصائح】 استخدم trim () لتحديد ما إذا كان الحرف الذي تم إدخاله فارغًا
if (Usename.trim ()
【نصائح】 محاكاة trim () مع تعبير منتظم
وظيفة fntrim (str) {return str.replace (/^/s+|/s+$/، '')} console.log (fntrim ('hello world')) ؛ // 'hello world'تحويل القضية
هناك أربع طرق متورطة في تحويل حالة السلسلة في ECMAScript: TolowerCase () ، tolocalelowercase () ، touppercase () ، و tolocaleuppercase ()
TolowerCase () و ToupperCase () هما طريقان كلاسيكيان ، تم استعارة طريقة الاسم نفسها في java.lang.string. يتم تنفيذ أساليب tolocalelowercase () و tolocaleuppercase () لمناطق محددة. بالنسبة لبعض المناطق ، فإن طريقة المناطق هي نفس النتائج التي حصلت عليها أساليبها العامة. ومع ذلك ، ستطبق بعض اللغات (مثل التركية) قواعد خاصة لتحويل حالة Unicode. في هذا الوقت ، يجب استخدام طريقة المناطق لضمان تحقيق التحويل الصحيح.
【touppercase ()】
طريقة touppercase () تحول السلسلة إلى أحرف كبيرة
【tolowercase ()】
طريقة tolowercase () تحول السلسلة إلى أحرف صغيرة
【tolocaleuppercase ()】
طريقة tolocaleuppercase () تحول السلسلة إلى أقصى (للمنطقة)
【TolocaleLowercase ()】
طريقة tolocalelowercase () تحول السلسلة إلى صغيرة (للمنطقة)
[ملاحظة] من الآمن استخدام طريقة خاصة بالمنطقة دون معرفة أي مكان سيتم تشغيل الكود الخاص بك.
var string = 'hello world' ؛ console.log (string.toLowerCase ()) ؛ // hello worldconsole.log (string.tolocaleLowerCase ()) ؛ // hello worldconsole.log (string.touppercase ()) ؛
هذه الطرق الأربعة لا تدعم سلسلة التحويل الضمني ()
(صواب) .ToLowerCase () ؛ // الإبلاغ عن خطأ
(2) .TolocalElowercase () ؛ // الإبلاغ عن خطأ
({}). touppercase () ؛ // الإبلاغ عن خطأ
([]). tolocaleuppercase () ؛ // الإبلاغ عن خطأ
[ملاحظة] يمكن استخدام طريقة تحويل الحالة بشكل مستمر
var string = 'hello world' ؛ console.log ((string.touppercase ()). tolowercase ()) ؛ // hello world
【localecompare ()】
يتم استخدام طريقة LocaleCompare () لمقارنة سلسلتين ، باتباع القواعد التالية
[1] إذا كان ينبغي تصنيف السلسلة قبل معلمة السلسلة في الأبجدية ، يتم إرجاع الرقم السلبي (معظمها -1)
【2】 إذا كانت السلسلة مساوية لمعلمة السلسلة ، فأرجع 0
【3】 إذا كان يجب وضع السلسلة بعد معلمة السلسلة في الأبجدية ، فسيتم إرجاع الرقم الموجب (في معظم الحالات 1)
var stringValue = 'Yellow' ؛ console.log (stringValue.localeCompare ('brick')) ؛ // 1 'y'> 'b'console.log (stringValue.localeCompare (' yellow ')) ؛ // 0' Yellow '==' yellow'console.log (stringvalue.localeCompare ('zoo') ؛ "حديقة الحيوان"[ملاحظة] على الرغم من أن الحروف الرأسمالية في الأبجدية أمام الأحرف الصغيرة ، لذا فإن الحروف الرأسمالية <أحرف صغيرة. لكن طريقة LocaleCompare () ستأخذ في الاعتبار وضع الفرز للغة الطبيعية ورتبة "B" أمام "A"
console.log ('b'.localecompare (' a ')) ؛ // 1console.log (' b '>' a ') ؛ // falseconsole.log (' b'.localecompare ('a')) ؛ما سبق هو المعرفة ذات الصلة بالشرح التفصيلي لنوع سلسلة سلسلة من نظام نوع JavaScript الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!