JavaScript 字符串搜索

วิธี JavaScript สำหรับค้นหาคำแถว

  • String.indexOf()
  • String.lastIndexOf()
  • String.startsWith()
  • String.endsWith()

String.indexOf()

indexOf() วิธีนี้กลับค่าของข้อความที่กำหนดในคำแถวครั้งแรกตำแหน่ง (ที่) ที่ปรากฏของตัวอักษร

ตัวอย่าง

let str = "Please locate where 'locate' occurs!";
str.indexOf("locate")    // กลับค่า 7

ทดลองด้วยตัวเอง

JavaScript นับตำแหน่งจาก 0

0 คือตำแหน่งแรกของคำแถว 1 คือตำแหน่งที่สอง 2 คือตำแหน่งที่สาม ...

String.lastIndexOf()

lastIndexOf() วิธีนี้กลับค่าตำแหน่งของข้อความที่กำหนดในตัวสตริงที่ตรงกัน

ตัวอย่าง

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("locate")    // กลับค่า 21

ทดลองด้วยตัวเอง

ถ้าไม่พบข้อความindexOf() และ lastIndexOf() ทั้งสองวิธีกลับค่า -1:

ตัวอย่าง

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("Bill")    // กลับค่า -1

ทดลองด้วยตัวเอง

วิธีนี้รับตัวเลขที่เป็นตัวเลขที่สองเป็นตำแหน่งที่เริ่มต้นการค้นหา

ตัวอย่าง

let str = "Please locate where 'locate' occurs!";
str.indexOf("locate", 15)    // กลับค่า 21

ทดลองด้วยตัวเอง

lastIndexOf() วิธีค้นหาทางหลัง (จากท้ายไปถึงเริ่มต้น) หมายความว่าถ้าตัวเลขที่เป็นตัวเลขที่สองคือ 15ถ้าตั้งตัวเลขเริ่มต้นที่ 15 จะค้นหาจากตำแหน่ง 15 ไปจนถึงต้นตัวสตริง

ตัวอย่าง

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("locate", 15)    // กลับค่า 7

ทดลองด้วยตัวเอง

String.search()

search() วิธีค้นหาค่าที่กำหนดในตัวสตริงและกลับค่าตำแหน่งที่ตรงกัน

ตัวอย่าง

let str = "Please locate where 'locate' occurs!";
str.search("locate")     // กลับค่า 7

ทดลองด้วยตัวเอง

คุณชื่นชมไหม?

indexOf() และ search() เปรียบเทียบสองวิธีนี้ มีกันเท่ากันหรือไม่?

พวกเขารับตัวเลขที่เหมือนกัน และกลับค่าที่เหมือนกันหรือไม่?

นี้สองวิธีไม่เท่ากัน ความแตกต่างดังนี้:

  • search() วิธีนี้ไม่สามารถรับตัวเลขที่เริ่มต้นที่สองที่เป็นตัวเลข
  • indexOf() วิธีนี้ไม่สามารถใช้ค่าที่ค้นหาที่มีความรุนแรง (ประมาณ)

คุณจะเรียนเรื่องประมาณภาษาไทยมากยิ่งขึ้นในบทที่ต่อไป

String.match()

match() มีการค้นหาค่าที่ตรงกันในตัวสตริงตามออกแบบประมาณ และกลับค่าในแบบมาตราฐาน Array

ตัวอย่าง 1

ค้นหา "ain" ในตัวสตริง

let text = "The rain in THAILAND stays mainly in the plain";
text.match(/ain/g)    // กลับค่าแบบมาตราฐาน [ain,ain,ain]

ทดลองด้วยตัวเอง

โปรดเรียนเรื่องประมาณภาษาไทยในบทที่ JS RegExp

ถ้าออกแบบประมาณไม่มีตัวเลข g สร้างโดยสร้างทั่วไป (g 修饰符) ในการค้นหาทั่วไป match() มีการกลับค่าแค่การตรวจสอบค่าที่ตรงกันตรงหนึ่งในตัวสตริง

ระบบแสดงทางภาษา

.match(regexp)
regexp จำเป็น ต้องการค้นหาค่าที่ต้องการ คือออกแบบเป็นประมาณ
คืนค่า: ตัวแปรแบบมาตราฐาน มีการตรวจสอบค่าที่ตรงกัน แต่ละค่าตรงกันตรงหนึ่ง ถ้าไม่มีการตรวจสอบค่า จะเป็น null

ตัวอย่าง 2

ค้นหา "ain" โดยไม่แยกตัวหลักต่อตัวอ่อน ทั่วไป

let text = "The rain in THAILAND stays mainly in the plain";
text.match(/ain/gi)   // คืนค่าตัวแปล [ain,AIN,ain,ain]}

ทดลองด้วยตัวเอง

String.includes()

ถ้าตัวสายประกอบด้วยค่าที่กำหนดincludes() วิธีการคืนค่า true

ตัวอย่าง

let text = "Hello world, welcome to the universe.";
text.includes("world")    // คืนค่า true

ทดลองด้วยตัวเอง

การสนับสนุนโดยบราวเซอร์

Internet Explorer ไม่สนับสนุน String.includes()

Chrome IE Firefox Safari Opera
Chrome 41 Edge 12 Firefox 40 Safari 9 Opera 28
2015 ปี 3 มีนาคม 2015 ปี 7 กรกฎาคม 2015 ปี 8 สิงหาคม 2015 ปี 10 ตุลาคม 2015 ปี 3 มีนาคม

ระบบแสดงทางภาษา

.includes(searchvalue, start)
searchvalue จำเป็น
start ที่แบบเลือก โดยมาตรฐานเท่า 0 ตำแหน่งที่เริ่มค้นหา
คืนค่า: ถ้าตัวสายประกอบด้วยค่านี้ คืนค่า trueครับ ไม่เป็นไปตามที่กำหนด คืนค่า false.
เวอร์ชั่น JS: ES6 (2015)

ตรวจสอบว่าตัวสายประกอบด้วย "world" จากตำแหน่ง 12 ต่อไป:

let text = "Hello world, welcome to the universe.";
text.includes("world", 12)    // คืนค่า false

ทดลองด้วยตัวเอง

String.startsWith()

ถ้าตัวสายเริ่มต้นด้วยค่าที่กำหนด startsWith() วิธีการคืนค่า trueครับ ไม่เป็นไปตามที่กำหนด คืนค่า false:

ตัวอย่าง

let text = "Hello world, welcome to the universe.";
text.startsWith("Hello")   // คืนค่า true

ทดลองด้วยตัวเอง

ระบบแสดงทางภาษา

.startsWith(searchvalue, start)

ค่าปรากฏการณ์

ปรากฏการณ์ คำอธิบาย
searchvalue จำเป็น
start ที่แบบเลือก โดยมาตรฐานเท่า 0 ตำแหน่งที่เริ่มค้นหา

ตัวอย่าง

let text = "Hello world, welcome to the universe.";
text.startsWith("world")    // คืนค่า false
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 5)    // คืนค่า false
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 6)    // คืนค่า true

ทดลองด้วยตัวเอง

หมายเหตุ:startsWith() วิธีแยกของตัวอักษรตัวเล็กตัวใหญ่

Internet Explorer ไม่สนับสนุน startsWith() วิธี。

สำหรับเวอร์ชั่นบราวเซอร์ที่สนับสนุนอย่างเต็มที่คือ:

Chrome IE Firefox Safari Opera
Chrome 41 Edge 12 Firefox 17 Safari 9 Opera 28
2015 ปี 3 มีนาคม 2015 ปี 7 กรกฎาคม 2015 ปี 8 สิงหาคม 2015 ปี 10 ตุลาคม 2015 ปี 3 มีนาคม

String.endsWith()

ถ้าตัวสายคือค่าที่กำหนด endsWith() วิธีการคืนค่า trueครับ ไม่เป็นไปตามที่กำหนด คืนค่า false:

ตัวอย่าง

ตรวจสอบว่าตัวอักษรต่อสุดท้ายของตัวสายคือ "Gates":

var text = "Bill Gates";
text.endsWith("Gates")    // คืนค่า true

ทดลองด้วยตัวเอง

ระบบแสดงทางภาษา

.endsWith(searchvalue, length)

ค่าปรากฏการณ์

ปรากฏการณ์ คำอธิบาย
searchvalue จำเป็น
length เลือกตั้งตามความต้องการ ยาวของสตริงที่ต้องการค้นหา

ค้นหาสตริงที่จบด้วย "world" 11 อักษรแรก

let text = "Hello world, welcome to the universe.";
text.endsWith("world", 11)    // กลับค่า true

ทดลองด้วยตัวเอง

หมายเหตุ:endsWith() วิธีแยกของตัวอักษรตัวเล็กตัวใหญ่

Internet Explorer ไม่สนับสนุน endsWith() วิธี。

เวอร์ชั่นบราวเซอร์ที่สนับสนุนวิธีนี้คือ

Chrome IE Firefox Safari Opera
Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
พฤษภาคม 2016 เมษายน 2017 มิถุนายน 2017 กันยายน 2016 มิถุนายน 2016

คู่มือสตริงเต็ม

สำหรับคู่มือเต็ม โปรดเข้าเว็บไซต์ของเรา คู่มือความหมาย JavaScript String.

คู่มือนี้มีคำอธิบายและตัวอย่างของทั้งหมดของคุณสมบัติและวิธีของสตริง