วัตถุสตริงสตริง
1. บทนำ
วัตถุสตริงทำงานบนสตริงเช่น: การสกัดกั้นสายย่อยการค้นหาสตริง/อักขระการแปลงตัวพิมพ์บนและล่าง ฯลฯ
2. วิธีการนิยาม
2.1 สตริงใหม่ (ค่า) ตัวสร้าง: ส่งคืนวัตถุสตริงที่มีเนื้อหาค่า
พารามิเตอร์:
①Value {String}: String
ค่าส่งคืน:
{วัตถุสตริง} ส่งคืนวัตถุสตริงที่มีค่า
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var demostr = สตริงใหม่ ('abc');
console.log (typeof demostr); // => วัตถุ
console.log (demostr); // => ABC
2.2 การมอบหมายโดยตรง (แนะนำ)
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var demosttr = 'abc';
console.log (typeof demostr); // สตริง
console.log (demostr); // => ABC
3. คุณสมบัติอินสแตนซ์
3.1 ความยาว: ส่งคืนจำนวนอักขระในสตริง
การคัดลอกรหัสมีดังนี้:
var s = 'abc';
console.log (s.length); // => 3
console.log ('สวัสดีปีใหม่' ความยาว); // => 4: อักขระจีนหนึ่งตัวยังคำนวณเป็น 1 ปริมาณ
console.log (''. ความยาว); // => 0: สตริงว่างส่งคืน 0
4. ตัวอย่างวิธีการ
หมายเหตุ: วิธีการอินสแตนซ์ของสตริงจะไม่เปลี่ยนสตริงเองและจะส่งคืนผลลัพธ์หลังจากการดำเนินการเท่านั้น
4.1 Charat (ดัชนี): ส่งคืนอักขระที่ตำแหน่งที่ระบุในสตริงตัวเลขจะเริ่มต้นจาก 0 ถ้ามีการส่งค่าที่ไม่มีอยู่ในนั้นสตริงว่างจะถูกส่งคืน
พารามิเตอร์:
①index {int}: ดัชนีตำแหน่งคำนวณจาก 0
ค่าส่งคืน:
{String} ส่งคืนอักขระที่ตำแหน่งที่ระบุในสตริง หากมีค่าของตำแหน่งที่ไม่มีอยู่จริงจะส่งคืนสตริงว่างเปล่า
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var s = 'abc';
console.log (S.Charat (1)); // => b: ส่งคืนอักขระด้วยตำแหน่ง 1
console.log; // => ไม่มีผลต่ออาร์เรย์ดั้งเดิม
console.log (S.Charat (5)); // => '': รับอักขระที่ไม่มีตำแหน่งและส่งคืนสตริงที่ว่างเปล่าที่มีความยาว 0
4.2 Charcodeat (ดัชนี): ส่งคืนการเข้ารหัส Unicode ของอักขระตำแหน่งที่ระบุในสตริง
พารามิเตอร์:
①index {int}: ดัชนีตำแหน่งคำนวณจาก 0
ค่าส่งคืน:
{number} ส่งคืนการเข้ารหัส Unicode ของอักขระตำแหน่งที่ระบุในสตริง; หากผ่านค่าตำแหน่งที่ไม่มีอยู่จริงให้ส่งคืน NAN
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var s = 'abc';
console.log (s.charcodeat (0)); // => 98: การเข้ารหัส Unicode ของอักขระ B
console.log (s.charcodeat (5)); // => NAN: รับอักขระที่ไม่มีตำแหน่งและกลับ NAN
4.3 concat (value1, value2 ... valuen): เชื่อมต่อหนึ่งหรือมากกว่าหนึ่งสตริงและส่งคืนสตริงที่เชื่อมต่อ
พารามิเตอร์:
①Value1, value2 ... valuen {String}: หนึ่งหรือมากกว่านั้น
ค่าส่งคืน:
{String} ส่งคืนสตริงที่เชื่อมต่อ
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var s = 'abc';
console.log (s.concat ('d')); // => ABCD
console.log; // => ABC: ไม่ส่งผลกระทบต่อสตริงต้นฉบับ
console.log (s.concat ('d', 'e')); // => abcde
4.4 INDEXOF (ค่า, | startPosition): ค้นหาสตริงหรืออักขระจากด้านหน้าไปด้านหลังในอินสแตนซ์และส่งคืนตำแหน่งที่พบ (นับจาก 0) หากไม่พบให้ส่งคืน -1
พารามิเตอร์:
①Value {String}: สตริงที่จะพบ
②StartPosition {int} ตัวเลือก: ตำแหน่งเริ่มต้นของการค้นหาเริ่มต้นการค้นหาเริ่มต้นเริ่มต้นจากตำแหน่ง 0
ค่าส่งคืน:
{int} ส่งคืนตำแหน่งที่พบ (นับจาก 0) หากไม่พบให้ส่งคืน -1
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var s = 'abc';
console.log (s.indexof ('b')); // => 1
console.log (s.indexof ('d')); // => -1: ไม่พบ
console.log (s.indexof ('b', 2)); // => -1: เริ่มค้นหาจากตำแหน่ง 2 (ที่อักขระที่สาม)
4.5 LastIndexof (ค่า, | startPosition): ในอินสแตนซ์ค้นหาสตริงหรืออักขระจากด้านหลังไปด้านหน้าและส่งคืนตำแหน่งที่พบ (นับจาก 0) หากไม่พบให้ส่งคืน -1
พารามิเตอร์:
①Value {String}: สตริงที่จะพบ
②StartPosition {int} ตัวเลือก: ตำแหน่งเริ่มต้นของการค้นหาเริ่มต้นการค้นหาเริ่มต้นเริ่มต้นจากการค้นหาสุดท้าย
ค่าส่งคืน:
{int} ส่งคืนตำแหน่งที่พบ (นับจาก 0) หากไม่พบให้ส่งคืน -1
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var s = 'abcabc';
console.log (s.lastindexof ('a')); // => 3: ค้นหาจากด้านหลังไปด้านหน้า
console.log (s.lastindexof ('d')); // => -1: ไม่พบผลตอบแทน -1
console.log (s.lastindexof ('a', 2)); // => 0: เริ่มมองไปข้างหน้าจากตำแหน่ง 2 (ที่ตัวละครตัวที่สาม)
4.6 localEcompare (ค่า): เปรียบเทียบอินสแตนซ์กับพารามิเตอร์และส่งคืนผลการเปรียบเทียบ
พารามิเตอร์:
①Value {String}: สตริงที่จะเปรียบเทียบ
ค่าส่งคืน:
0: อินสแตนซ์มีขนาดใหญ่กว่าพารามิเตอร์
1: อินสแตนซ์และพารามิเตอร์เท่ากัน
-1: อินสแตนซ์มีขนาดเล็กกว่าพารามิเตอร์
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var s = 'abc';
console.log (s.localecompare ('ab')); // => 1: อินสแตนซ์มีขนาดใหญ่กว่าพารามิเตอร์
console.log (s.localecompare ('abc')); // => 0: อินสแตนซ์เท่ากับพารามิเตอร์
console.log (s.localecompare ('abd')); // => -1: อินสแตนซ์มีขนาดเล็กกว่าพารามิเตอร์
4.7 Match (regexp): ใช้นิพจน์ทั่วไปสำหรับการค้นหาการจับคู่
พารามิเตอร์:
①regexp {regexp}: นิพจน์ทั่วไปเช่น: // d+/
ค่าส่งคืน:
ผลลัพธ์ที่แตกต่างกันจะถูกส่งคืนขึ้นอยู่กับว่านิพจน์ทั่วไปมีแอตทริบิวต์ 'G'; หากไม่มีการจับคู่ให้ส่งคืน {null}:
①นิพจน์ทั่วไปไม่มีแอตทริบิวต์ 'G' ทำการจับคู่หนึ่งครั้งและส่งคืนวัตถุผลลัพธ์ {การจับคู่เดี่ยว} ซึ่งมีคุณสมบัติต่อไปนี้:
หมายเลขอาร์เรย์: หมายถึงผลลัพธ์ที่ตรงกัน 0 คือข้อความที่ตรงกัน 1 คือผลลัพธ์ที่ตรงกันจากวงเล็บแรกไปทางขวา 2 เป็นวงเล็บที่สองและอื่น ๆ
แอตทริบิวต์ดัชนี: ระบุว่าข้อความการจับคู่อยู่ที่จุดเริ่มต้นของแหล่งที่ตรงกัน
แอตทริบิวต์อินพุต: ระบุแหล่งที่ตรงกัน
②นิพจน์ทั่วไปมีแอตทริบิวต์ 'G' ดำเนินการจับคู่ทั่วโลกค้นหาวัตถุที่ตรงกันทั้งหมดของสตริงและส่งคืน {สตริงอาร์เรย์}: องค์ประกอบอาร์เรย์มีวัตถุที่ตรงกันแต่ละรายการในสตริงไม่มีสตริงในวงเล็บนิพจน์ปกติและไม่ได้ให้ดัชนีและแอตทริบิวต์อินพุต
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
// 1. การแข่งขันเดี่ยว
var s = 'a1b2c3d4';
var mc = s.match (// d+/); // => รับผลลัพธ์ของการจับคู่ปกติครั้งแรก
ถ้า (mc! = null) {
console.log (mc.index); // => 1: ผลลัพธ์การจับคู่อยู่ที่ตำแหน่งเริ่มต้นของแหล่งที่มาการจับคู่
console.log (mc.input) // => a1b2c3d4: แหล่งที่มาของการจับคู่
console.log (MC [0]); // => 1: รับผลการจับคู่
-
// 2. การแข่งขันทั่วโลก
var mcarray = s.match (// d+/g); // => รับหมายเลขการจับคู่ปกติทั้งหมด
if (mcarray! = null) {
สำหรับ (var i = 0, len = mcarray.length; i <len; i ++) {
var mc = mcarray [i];
console.log (MC); // => 1,2,3,4: รับผลการจับคู่
-
-
// 3. จับคู่กับวงเล็บ
S = 'A1B2C3D4';
mc = s.match (/[az] ([1-9])/); // => รับผลลัพธ์ของการจับคู่ปกติครั้งแรก
ถ้า (mc! = null) {
console.log (mc.index); // => 0: ผลลัพธ์การจับคู่อยู่ที่ตำแหน่งเริ่มต้นของแหล่งที่ตรงกัน
console.log (mc.input) // => a1b2c3d4: แหล่งที่มาของการจับคู่
console.log (MC [0]); // => a1: หมายเลขซีเรียล 0 หมายถึงผลลัพธ์ที่ตรงกัน
console.log (MC [1]); // => 1: หมายเลขซีเรียล 1 แสดงผลลัพธ์การแข่งขันย่อยในวงเล็บแรก
-
4.8 แทนที่ (regexp, replacestr): แทนที่สตริงย่อยที่ตรงกับนิพจน์ทั่วไปและส่งคืนสตริงที่ถูกแทนที่
พารามิเตอร์:
①regexp {regexp}: นิพจน์ทั่วไป เช่น: // d+/
②replacestr {String | การทำงาน}:
1) ถ้าเป็นสตริงมันหมายถึงสตริงที่ถูกแทนที่และสตริงการจับคู่จะถูกแทนที่ด้วยสตริงนี้
อักขระ $ ในสตริงมีความหมายพิเศษ:
$ 1, $ 2 ... $ 99: ระบุลูกที่ตรงกันของพารามิเตอร์①จากซ้ายไปขวาวงเล็บ
$ &: แสดงถึงเด็กที่ตรงกับพารามิเตอร์ทั้งหมด①
$$: เครื่องหมายดอลลาร์
2) ถ้าเป็นฟังก์ชันหมายความว่าฟังก์ชั่นนี้เรียกว่าสำหรับผลการจับคู่แต่ละรายการ พารามิเตอร์เดียวของฟังก์ชั่นคือผลลัพธ์ที่ตรงกันและผลลัพธ์การเปลี่ยนจะถูกส่งคืน
ค่าส่งคืน:
{String} ส่งคืนสตริงที่ถูกแทนที่
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var oldstr = 'a1b2c3d4';
// 1. จับคู่ [ทั้งหมด] เป็นประจำแทนที่ด้วย: ',' comma
var newstr = oldstr.replace (// d+/g, ',');
console.log (NewsTR); // => a, b, c, d,
// 2. จับคู่หมายเลข [ทั้งหมด] เป็นประจำแทนที่ด้วย: การจับคู่ผลลัพธ์ + ',' เครื่องหมายจุลภาค
newStr = oldstr.replace (// d+/g, '$ &,');
console.log (NewsTR); // => a1, b2, c3, d4
// 3. จับคู่หมายเลข [ทั้งหมด] เป็นประจำแต่ละผลลัพธ์การจับคู่จะเรียกฟังก์ชันและส่งคืนผลลัพธ์ที่ถูกแทนที่
newStr = oldstr.replace (// d+/g, ฟังก์ชั่น (คำ) {
ถ้า (Word % 2 == 0) {
กลับมา 'แม้แต่';
-
กลับ 'yi';
-
console.log (NewsTR); // => a คี่ b แม้ c คี่ d แม้
4.9 การค้นหา (regexp): ส่งคืนตำแหน่งที่พบการจับคู่แรกของนิพจน์ทั่วไป
พารามิเตอร์:
①regexp {regexp}: นิพจน์ทั่วไป เช่น: // d+/
ค่าส่งคืน:
{int} ส่งคืนตำแหน่งของผลลัพธ์ที่ตรงกันครั้งแรก; หากไม่พบผลลัพธ์ที่ตรงกันให้ส่งคืน -1
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
console.log ('abcd'.search (// d+/)); // => -1: ไม่พบหมายเลข
console.log ('abcd1234'.search (// d+/)); // => 4: หมายเลขตำแหน่งคือ 4 คืนตำแหน่งของหมายเลขแรก
4.10 Slice (Start, | END): ส่งคืนสตริงย่อยจากตำแหน่งเริ่มต้นของสตริงไปยังตำแหน่งก่อนหน้าของจุดสิ้นสุด
พารามิเตอร์:
①เริ่มต้น {int}: ดัชนีของตำแหน่งเริ่มต้นของสารสกัดย่อย (รวมถึงอักขระที่ตำแหน่งนี้)
หากตัวเลขเป็นลบก็หมายความว่าการคำนวณเริ่มต้นจากปลายสตริง ตัวอย่างเช่น: -1 หมายถึงสตริงการนับถอยหลังและ -2 หมายถึงอักขระการนับถอยหลัง
②end {int} ตัวเลือก: ดัชนีตำแหน่งสิ้นสุดของสกัดย่อย (ไม่รวมอักขระที่ตำแหน่งนี้)
หากตัวเลขเป็นลบก็หมายความว่าการคำนวณเริ่มต้นจากปลายสตริง ตัวอย่างเช่น: -1 หมายถึงสตริงการนับถอยหลังและ -2 หมายถึงอักขระการนับถอยหลัง
หากมีการละเว้นพารามิเตอร์นี้อักขระทั้งหมดจากตำแหน่งเริ่มต้นไปยังจุดสิ้นสุดจะถูกส่งคืน
สังเกต:
ลำดับการสกัดของย่อยมาจากซ้ายไปยังการดำรงอยู่ หากตำแหน่งดัชนีเริ่มต้นสูงกว่าตำแหน่งดัชนีสิ้นสุดสตริงว่างจะถูกส่งคืน
ค่าส่งคืน:
{String} ส่งคืนสตริงย่อยจากตำแหน่งเริ่มต้นของสตริงไปยังตำแหน่งก่อนหน้าของปลาย
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var s = 'abcdefg';
console.log (s.slice (1)); // bcdefg: ละเว้นพารามิเตอร์สิ้นสุดตำแหน่งสิ้นสุดคือสิ้นสุด
console.log (s.slice (1, 3)); // BC: ส่งคืนสตริงย่อยจากหมายเลขตำแหน่ง 1 ไปยังหมายเลขตำแหน่ง 2 (ตำแหน่งก่อนหน้าของ End)
console.log (s.slice (-3)); // EFG: ส่งคืนอักขระทั้งหมดจากตัวที่สามถึงจุดสิ้นสุด
console.log (s.slice (-3, -1)); // EF: ส่งคืนอักขระทั้งหมดจากตัวที่สามถึงสอง (ตำแหน่งก่อนหน้าของจุดสิ้นสุด)
4.11 Split (Delimiter, | ArrayLength): แบ่งสตริงออกเป็นอาร์เรย์ที่ประกอบด้วยสตริงตามตัวคั่นบางตัวและส่งคืน
พารามิเตอร์:
①delimiter {regexp | String}: ตัวคั่นที่ระบุซึ่งอาจเป็นนิพจน์ทั่วไปหรือสตริง
②ArrayLength {int} ตัวเลือก: แยกความยาวของอาร์เรย์ หากละเว้นให้ส่งคืนย่อยที่แบ่งออกทั้งหมด
สังเกต:
หากตัวคั่นอยู่ในสตริงแรกหรือสตริงสุดท้ายสตริงว่างจะถูกเพิ่มลงในอาร์เรย์ที่ส่งคืน
ค่าส่งคืน:
{String []} ส่งคืนอาร์เรย์ของสตริง
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
console.log ('a, b, c, d, e'.split (', ')); // => ["A", "B", "C", "D", "E"]
console.log (', a, b, c, d, e,'. แยก (','); // => ["", "A", "B", "C", "D", "E", ""]: ตัวคั่นเป็นครั้งแรกหรือสุดท้ายและจะเพิ่มสตริงว่างเปล่า
console.log ('a, b, c, d, e'.split (', ', 3)); // => ["A", "B", "C"]: ส่งคืน substrings 3 แยกแรกแรก
console.log ('a1b2c3d4e'.split (// d/)); // => ["A", "B", "C", "D", "E"]: ใช้ตัวเลขเป็นตัวคั่น
4.12 substr (เริ่มต้น | wordLength): ส่งคืนสตริงย่อยที่คำนวณจากตำแหน่งเริ่มต้นของสตริงไปที่ความยาว wordLength
พารามิเตอร์:
①เริ่มต้น {int}: ดัชนีของตำแหน่งเริ่มต้นของสารสกัดย่อย (รวมถึงอักขระที่ตำแหน่งนี้)
หากตัวเลขเป็นลบก็หมายความว่าการคำนวณเริ่มต้นจากปลายสตริง ตัวอย่างเช่น: -1 หมายถึงสตริงการนับถอยหลังและ -2 หมายถึงอักขระการนับถอยหลัง
②wordLength {int} ตัวเลือก: แยกความยาวของอักขระ หากมีการละเว้นพารามิเตอร์นี้อักขระทั้งหมดจากตำแหน่งเริ่มต้นไปยังจุดสิ้นสุดจะถูกส่งคืน
ค่าส่งคืน:
{String} ส่งคืนสตริงที่แยกออกมา
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
AR S = 'ABCDEFG';
onsole.log (S.Substr (0)); // => ABCDEFG: ละเว้นพารามิเตอร์ที่สองและส่งคืนอักขระเริ่มต้นจากหมายเลขตำแหน่ง 0 และสูงสุดเป็นสุดท้าย
onsole.log (s.substr (0, 3)); // => ABC: ส่งคืนเริ่มจากหมายเลขตำแหน่ง 0 และนับ 3 อักขระ
onsole.log (s.substr (2, 4)); // => cdef: ส่งคืนเริ่มจากหมายเลขตำแหน่ง 2 และนับ 4 อักขระ
onsole.log (s.substr (-2, 3)); // FG: ผลตอบแทนเริ่มต้นจากสตริงสุดท้ายและการนับ 3 (หลังจากเกินความยาวของอักขระจะส่งกลับอักขระทางสถิติเท่านั้น)
4.13 Substring (เริ่มต้น | สิ้นสุด): ส่งคืนสตริงย่อยจากตำแหน่งเริ่มต้นของสตริงไปยังตำแหน่งก่อนหน้าของสิ้นสุด
พารามิเตอร์:
①เริ่มต้น {int}: ดัชนีของตำแหน่งเริ่มต้นของสารสกัดย่อย (รวมถึงอักขระที่ตำแหน่งนี้) จำนวนไม่สามารถเป็นจำนวนลบได้ หากเป็นจำนวนลบมันจะถูกประมวลผลเป็น 0
②end {int} ตัวเลือก: ดัชนีตำแหน่งสิ้นสุดของสกัดย่อย (ไม่รวมอักขระที่ตำแหน่งนี้) จำนวนไม่สามารถเป็นจำนวนลบได้ หากเป็นจำนวนลบมันจะถูกประมวลผลเป็น 0
ค่าส่งคืน:
{String} ส่งคืนสตริงย่อยจากตำแหน่งเริ่มต้นของสตริงไปยังตำแหน่งก่อนหน้าของปลาย
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var s = 'abcdefg';
console.log (s.substring (0)); // => abcdefg: ละเว้นพารามิเตอร์สิ้นสุดและส่งคืนอักขระเริ่มต้นจากหมายเลขตำแหน่ง 0 และสูงสุดเป็นสุดท้าย
console.log (s.substring (0, 3)); // => ABC: ส่งคืนอักขระเริ่มต้นจากหมายเลขตำแหน่ง 0 ถึงหมายเลขตำแหน่ง 2 (พารามิเตอร์②หนึ่งก่อนหน้า)
console.log (s.substring (2, 4)); // => CD: ส่งคืนอักขระเริ่มต้นจากหมายเลขตำแหน่ง 2 ไปยังหมายเลขตำแหน่ง 3 (พารามิเตอร์②หนึ่งก่อนหน้า)
console.log (s.substring (-3, 3)); // ABC: หากพารามิเตอร์เป็นลบมันจะถูกประมวลผลเป็นหมายเลข 0 ดังนั้นพารามิเตอร์นี้จะส่งคืนอักขระจากหมายเลขตำแหน่ง 0 ไปยังหมายเลขตำแหน่ง 3
4.14 touppercase (): แปลงสตริงเป็นตัวพิมพ์ใหญ่และส่งคืน
4.15 Touppercase (): แปลงสตริงเป็นตัวพิมพ์เล็กและส่งคืน
4.16 TRIM (): ลบอักขระช่องว่างที่จุดเริ่มต้นและสิ้นสุดของสตริงและส่งคืน
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ ฉันหวังว่าผ่านบทความนี้คุณจะมีความเข้าใจใหม่เกี่ยวกับวัตถุสตริงใน JavaScript