[มีบางสถานการณ์ที่นักพัฒนาจำเป็นต้องเปรียบเทียบสองสตริง โปรแกรมเมอร์ส่วนใหญ่มักทำผิดพลาดในการพยายามเปรียบเทียบสตริงใน JavaScript โดยใช้ตัวดำเนินการ == ตัวดำเนินการ == มีข้อ จำกัด บางประการในสถานการณ์นี้เนื่องจากประเภทตัวแปรไม่สามารถตรวจสอบได้โดยใช้ ดังนั้น คุณอาจต้องหาวิธีอื่นในการจัดการกับสถานการณ์
บทความนี้จะสาธิตขั้นตอนการเปรียบเทียบสตริงใน JavaScript
จะเปรียบเทียบสองสตริงใน JavaScript ได้อย่างไร
สำหรับการเปรียบเทียบสตริง JavaScript สองสตริง ให้ใช้เมธอดในรายการต่อไปนี้:
- ตัวดำเนินการความเท่าเทียมกันอย่างเข้มงวด “===”
- localeCompare() วิธีการ
- RegEx พร้อมวิธีทดสอบ ()
- รวม () วิธีการ
มาดูการทำงานของแต่ละวิธีแยกกัน
วิธีที่ 1: เปรียบเทียบสองสตริงโดยใช้ Operator ที่เท่าเทียมกันอย่างเข้มงวด
สามารถใช้ตัวดำเนินการความเท่าเทียมกันอย่างเข้มงวด (===) เพื่อตรวจสอบว่าสตริงเท่ากันหรือไม่ หากสตริงต่างกัน จะคืนค่าเท็จเป็นเอาต์พุต มิฉะนั้นก็ให้จริง เนื่องจากเป็นวิธีการที่คำนึงถึงขนาดตัวพิมพ์ ในขณะที่เปรียบเทียบสตริง จะเปรียบเทียบตัวพิมพ์ของตัวอักษรด้วย ซึ่งหมายความว่าอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถือว่าแตกต่างกัน
ไวยากรณ์
ใช้ไวยากรณ์ด้านล่างเพื่อเปรียบเทียบสองสตริงโดยใช้ตัวดำเนินการความเท่าเทียมกันที่เข้มงวด:
str1 === str2 ;ที่นี่ “ === ตัวดำเนินการ ” จะเปรียบเทียบค่าและประเภทข้อมูลของ str1 และ str2
ตัวอย่าง
ในตัวอย่างนี้ เราจะเปรียบเทียบสองสตริงที่หนึ่งเป็นตัวพิมพ์ใหญ่และอีกอันเป็นตัวพิมพ์เล็ก ในการทำเช่นนั้น ขั้นแรก เราจะสร้างตัวแปรสองตัวชื่อ “str1” และ “str2” ที่เก็บสตริง “ Linuxคำแนะนำ ' และ ' linuxhint ”:
เคยเป็น str1 = 'คำแนะนำลินุกซ์' ;เคยเป็น str2 = 'ลินุกซ์' ;
จากนั้นโทรไปที่ “ console.log() ” วิธีพิมพ์ผลลัพธ์ที่บอกว่าสตริงเท่ากันหรือไม่โดยใช้ “ === ” โอเปอเรเตอร์:
คอนโซล บันทึก ( str1 === str2 ) ;ผลลัพธ์แสดง “ เท็จ ” ซึ่งระบุว่าสตริงไม่เท่ากันเนื่องจากตัวดำเนินการความเท่าเทียมกันทำการเปรียบเทียบตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่:
หากคุณต้องการเปรียบเทียบระหว่างสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์ คุณต้องทำตามวิธีการด้านล่าง
วิธีที่ 2: เปรียบเทียบสองสตริงโดยใช้ localeCompare() Method
“ localeCompare() ” เป็นวิธีการที่กำหนดไว้ล่วงหน้าของ JavaScript ที่ใช้ในการเปรียบเทียบสองสตริง จะทำการเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์ และใช้โลแคลปัจจุบันเพื่อเปรียบเทียบสองสตริง
ไวยากรณ์
ทำตามไวยากรณ์ที่กล่าวถึงด้านล่างเพื่อเปรียบเทียบสองสตริงโดยใช้วิธี localeCompare():
str1. localeCompare ( str2 ) ;ที่นี่, ' str2 ” เป็นสตริงที่จะนำมาเปรียบเทียบกับ “ str1 ”:
ตัวอย่าง
ตอนนี้เราจะใช้สตริงเดียวกันกับที่สร้างไว้แล้วในตัวอย่างก่อนหน้านี้แล้วเปรียบเทียบโดยใช้ ' localeCompare() ” ด้วยความช่วยเหลือของตัวดำเนินการตามเงื่อนไข:
ถ้า ( str1. localeCompare ( str2 ) ) {คอนโซล บันทึก ( 'str1 เท่ากับ str2' ) ;
} อื่น {
คอนโซล บันทึก ( 'str1 ไม่เท่ากับ str2' ) ;
}
ดังที่คุณเห็นว่าผลลัพธ์บ่งชี้ว่าสตริงเท่ากัน เนื่องจากวิธีการเปรียบเทียบการเปรียบเทียบที่ไม่คำนึงถึงขนาดตัวพิมพ์:
ไปที่วิธีถัดไปกันเถอะ!
วิธีที่ 3: เปรียบเทียบสองสตริงโดยใช้ RegExp ด้วยการทดสอบ () วิธี
มีอีกวิธีหนึ่งในการเปรียบเทียบสองสตริงที่ทำการเปรียบเทียบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ที่เรียกว่า ' RegExp ” ด้วยความช่วยเหลือของ “ ทดสอบ() ' กระบวนการ. ตรวจสอบความเท่าเทียมกันของสตริงตาม regex ที่กำหนดไว้ เมธอด test() จะยอมรับสตริงเป็นอาร์กิวเมนต์สำหรับการเปรียบเทียบ
ไวยากรณ์
ทำตามไวยากรณ์ที่กำหนดสำหรับวิธีการทดสอบ () โดยใช้ RegEx ด้วยวิธีการทดสอบ ():
รูปแบบเร็ก. ทดสอบ ( str2 ) ;ที่นี่, ' str2 ” เป็นสตริงที่จะนำมาเปรียบเทียบกับ “ regPattern ”:
ตัวอย่าง
ตอนนี้ เราจะสร้างอินสแตนซ์ของ RegExp โดยส่งสตริง “ str1 ” และ regex “ จิ ” ที่บ่งชี้การเปรียบเทียบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และเก็บไว้ในตัวแปร “ regPattern ”:
เคยเป็น regPattern = ใหม่ RegExp ( str1 , 'จิ' ) ;หลังจากนั้นเราจะเรียก ทดสอบ() ” วิธีโดยการส่งสตริง “ str2 ” เป็นข้อโต้แย้ง
เคยเป็น ปี = รูปแบบเร็ก. ทดสอบ ( str2 ) ;จากนั้น ใช้คำสั่งแบบมีเงื่อนไขเพื่อตรวจสอบว่าสตริงมีค่าเท่ากันหรือไม่:
ถ้า ( ปี ) {คอนโซล บันทึก ( 'str1 เท่ากับ str2' ) ;
} อื่น {
คอนโซล บันทึก ( 'str1 ไม่เท่ากับ str2' ) ;
}
เอาท์พุต
หากคุณต้องการเปรียบเทียบสตริงกับสตริงอื่นเป็นสตริงย่อย คุณต้องปฏิบัติตามส่วนด้านล่าง
วิธีที่ 4: เปรียบเทียบสองสตริงโดยใช้ include() Method
ในการพิจารณาว่าสตริงนั้นเป็นสตริงย่อยของสตริงอื่นหรือไม่ JavaScript ให้วิธีการที่กำหนดไว้ล่วงหน้าที่เรียกว่า ' รวมถึง() ' กระบวนการ. ใช้สตริงเป็นอาร์กิวเมนต์และให้ค่าบูลีน ' จริง ” หากมีอยู่ในสตริง มิฉะนั้นจะส่งคืน ' เท็จ ”
ไวยากรณ์
ทำตามวิธีการด้านล่างที่ให้ไว้สำหรับการใช้วิธี include():
str1. รวมถึง ( str2 ) ;ที่นี่, ' str2 ” เป็นสตริงที่ตรวจสอบว่ารวมอยู่หรือเป็นส่วนหนึ่งของ “ str1 ”:
ตัวอย่าง
ที่นี่ อันดับแรก เราจะสร้างสองสตริง “str1” และ “str2” และตรวจสอบว่าสตริงที่สองเป็นสตริงย่อยของสตริงแรกหรือไม่:
เคยเป็น str1 = 'คำแนะนำลินุกซ์' ;เคยเป็น str2 = 'ใน' ;
สำหรับสิ่งนี้ ให้เรียก “includes()” method โดยผ่าน “str2” เป็นข้อโต้แย้ง:
คอนโซล บันทึก ( str1. รวมถึง ( str2 ) ) ;ผลลัพธ์ให้ “ จริง ” ซึ่งแสดงว่า “ str2 ” เป็นส่วนหนึ่งของ “ str1 ”:
เราได้รวบรวมวิธีการทั้งหมดเพื่อเปรียบเทียบสตริง JavaScript สองสตริง
บทสรุป
สำหรับการเปรียบเทียบสตริง JavaScript สองสตริง คุณสามารถใช้เมธอด localeCompare() ตัวดำเนินการความเท่าเทียมกันที่เข้มงวด วิธี RegEx พร้อม test() หรือเมธอด include() ตัวดำเนินการความเท่าเทียมกันที่เข้มงวดจะทำการเปรียบเทียบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ในขณะที่วิธี test() และวิธี localeCompare() จะทำการเปรียบเทียบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ สุดท้าย เมธอด include() จะตรวจสอบสตริงเป็นสตริงย่อยในสตริงอื่น ในบทความนี้ เราสาธิตวิธีการเปรียบเทียบสองสตริงใน JavaScript กับตัวอย่างที่เหมาะสม