ขณะเขียนโค้ด นักพัฒนามักจะต้องเปรียบเทียบสองสตริงเพื่อให้แน่ใจว่างานที่เฉพาะเจาะจงเสร็จสมบูรณ์ การเปรียบเทียบสตริงโดยไม่ให้ความสนใจกับตัวพิมพ์ เช่น ตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก เรียกว่าการเปรียบเทียบแบบไม่คำนึงถึงขนาดตัวพิมพ์ หลายภาษารองรับการเปรียบเทียบสตริงด้วยความละเอียดอ่อนของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
บทความนี้จะอธิบายวิธีการเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์ใน JavaScript
จะเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์ใน JavaScript ได้อย่างไร
สำหรับการเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์ใน JavaScript ให้ใช้เมธอดที่กำหนดไว้ล่วงหน้าต่อไปนี้:
-
- localeCompare() วิธีการ
- toUpperCase() และ toLowerCase() method
- นิพจน์ปกติด้วยเมธอด test()
มาดูการทำงานของแต่ละแนวทางที่กล่าวถึงข้างต้นแยกกัน
วิธีที่ 1: การเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์โดยใช้ LocaleCompare() Method
การเปรียบเทียบสตริงที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ใช้ ' localeCompare() ' กระบวนการ. วิธีนี้จะคืนค่าตัวเลข (บวก ลบ หรือศูนย์) สตริงจะถูกเปรียบเทียบในลำดับการจัดเรียง หากสตริงอ้างอิงยาวกว่าสตริงเปรียบเทียบหรืออยู่หลังสตริงที่เปรียบเทียบ สตริงนั้นจะเป็นค่าบวก ถ้าสตริงอ้างอิงสั้นกว่าหรือมาก่อนสตริงที่เปรียบเทียบ จะส่งกลับค่าลบ ควรคืนค่าศูนย์หากสตริงอ้างอิงเทียบเท่ากับสตริงที่เปรียบเทียบ
ไวยากรณ์
ทำตามไวยากรณ์ที่ให้มาสำหรับวิธี localeCompare():
string1.localeCompare ( string2, สถานที่, ตัวเลือก )
ที่นี่,
-
- “ string2 ” คือสตริงเปรียบเทียบ โดยที่สตริง 1 จะถูกเปรียบเทียบ
- “ ท้องถิ่น ” คือแท็กภาษา
- “ ตัวเลือก ” คือตำแหน่งที่ผู้ใช้ให้ไว้ในขณะที่ทำงานกับมัน
ตัวอย่าง
สร้างสองสตริง “ string1 ' และ ' string2 ” กับสตริง “ linuxhint ' และ ' Linuxคำแนะนำ ” ตามลำดับ:
var string1 = 'ลินุกซ์' ;var string2 = 'คำแนะนำลินุกซ์' ;
เปรียบเทียบ string1 กับ string2 โดยใช้ “ localeCompare() ” วิธีการและเก็บผลลัพธ์ไว้ในตัวแปร “ คอมพ์ ” อาร์กิวเมนต์ที่สามของวิธีการจะตั้งค่าเป็น “ ความไว: 'ฐาน' ” ที่ระบุว่าสตริงที่เปรียบเทียบตัวอักษรฐานไม่แตกต่างกัน:
ในคำสั่งแบบมีเงื่อนไข ให้ตรวจสอบว่าค่าที่ส่งคืนของวิธี localeCompare() มีค่าเท่ากับศูนย์หรือไม่ โดยจะพิมพ์ว่า ' สตริงมีค่าเท่ากัน ', อื่น, ' สตริงไม่เท่ากัน ”:
console.log ( 'สตริงมีค่าเท่ากัน' ) ;
} อื่น {
console.log ( 'สตริงไม่เท่ากัน' ) ;
}
เอาท์พุต
วิธีที่ 2: การเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์โดยใช้วิธี toUpperCase() และ toLowerCase()
วิธีที่ใช้มากที่สุดในการเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์คือวิธี toUpperCase() หรือวิธี toLowerCase() พวกเขาแปลงสตริงเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กแล้วเปรียบเทียบกับตัวดำเนินการความเท่าเทียมกันที่เข้มงวด
ไวยากรณ์
สำหรับเมธอด toUpperCase() ให้ใช้วิธีการต่อไปนี้:
string.toUpperCase ( ) ;
ใช้ไวยากรณ์ด้านล่างสำหรับเมธอด toLowerCase()
ตัวอย่าง: การเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์โดยใช้วิธี toUpperCase()
พิจารณาสตริงที่สร้างขึ้นข้างต้น “ string1 ' และ ' string2 ” จากนั้นเปรียบเทียบโดยใช้วิธี toUpperCase() กับตัวดำเนินการความเท่าเทียมกันที่เข้มงวด:
ถ้า ( string1.toUpperCase ( ) === string2.toUpperCase ( ) ) {console.log ( 'สตริงมีค่าเท่ากัน' ) ;
} อื่น {
console.log ( 'สตริงไม่เท่ากัน' ) ;
}
ผลลัพธ์ระบุว่าสตริงทั้งสองมีค่าเท่ากันโดยไม่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่:
ตัวอย่าง: การเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์โดยใช้วิธี toLowerCase()
ที่นี่ สตริงจะถูกเปรียบเทียบโดยใช้เมธอด toLowerCase() ที่จะแปลงสตริงเป็นตัวพิมพ์เล็กก่อน จากนั้นจึงเปรียบเทียบโดยใช้ตัวดำเนินการ ===:
ถ้า ( string1.toLowerCase ( ) === string2.toLowerCase ( ) ) {console.log ( 'สตริงมีค่าเท่ากัน' ) ;
} อื่น {
console.log ( 'สตริงไม่เท่ากัน' ) ;
}
ผลลัพธ์ที่สอดคล้องกันจะเป็น:
วิธีที่ 3: การเปรียบเทียบสตริงที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่โดยใช้นิพจน์ปกติด้วยการทดสอบ () วิธี
JavaScript ที่กำหนดไว้ล่วงหน้า “ ทดสอบ() ” ซึ่งใช้นิพจน์ทั่วไปเป็นอีกวิธีหนึ่งในการเปรียบเทียบสองสตริง ตาม regex ที่ระบุ จะกำหนดว่าสตริงเท่ากันหรือไม่
ไวยากรณ์
ทำตามไวยากรณ์ที่กำหนดสำหรับการใช้นิพจน์ทั่วไปเพื่อเปรียบเทียบสตริง:
RegExp ( สตริง 'จิ' )
ที่นี่,
-
- “ RegExp ' หมายถึง ' นิพจน์ทั่วไป ”
- “ g ” เป็นตัวแปรส่วนกลางที่ช่วยให้ตรวจสอบสตริงทั้งหมดได้
- “ ผม ” เป็นตัวแปรแฟล็กที่ระบุว่ากรณีควรละเว้นในขณะที่ใช้สตริงเพื่อให้ตรงกับรูปแบบ
ตัวอย่าง
ขั้นแรก สร้างวัตถุใหม่ของ RegExp() โดยส่งสตริงและนิพจน์ทั่วไปเป็นอาร์กิวเมนต์:
var comp = ใหม่ RegExp ( สตริง1, 'จิ' ) ;
เปรียบเทียบสตริงโดยใช้เมธอด test()
console.log ( 'สตริงมีค่าเท่ากัน' ) ;
} อื่น {
console.log ( 'สตริงไม่เท่ากัน' ) ;
}
เอาท์พุต
บทสรุป
หากต้องการเปรียบเทียบสตริงที่ไม่คำนึงถึงขนาดตัวพิมพ์ใน JavaScript ให้ใช้เมธอดที่กำหนดไว้ล่วงหน้าของ JavaScript รวมถึงเมธอด localeCompare(), เมธอด toUpperCase() และ toLowerCase() หรือเมธอด test() ที่มีนิพจน์ทั่วไป วิธีการ “toUpperCase() และ toLowerCase()” เป็นวิธีที่ใช้มากที่สุดในการเปรียบเทียบสตริงที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ บทความนี้แสดงวิธีต่างๆ สำหรับการเปรียบเทียบสตริงที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ใน JavaScript