regex ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ใน JavaScript


121

ฉันต้องการแยกสตริงการสืบค้นจาก URL ของฉันโดยใช้ JavaScript และฉันต้องการทำการเปรียบเทียบแบบไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่สำหรับชื่อสตริงการสืบค้น นี่คือสิ่งที่ฉันกำลังทำ:

var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results) { return 0; }
return results[1] || 0;

แต่โค้ดด้านบนจะทำการค้นหาแบบคำนึงถึงตัวพิมพ์เล็กและใหญ่ ฉันพยายาม/<regex>/iแล้วแต่มันไม่ได้ช่วยอะไร มีความคิดว่าจะทำได้อย่างไร?


5
รูปแบบตามตัวอักษร/ regex / iควรใช้งานได้เว้นแต่คุณจะพยายามเชื่อมต่อมันหรือบางอย่าง ...
อเล็กซ์

คำตอบ:


211

คุณสามารถเพิ่มตัวปรับแต่ง 'i' ซึ่งหมายถึง "ละเว้นตัวพิมพ์"

var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);

2
ฉันจะทำให้มันเป็นสตริงเดียวได้อย่างไร
Cardinal - คืนสถานะ Monica

11
@CardinalSystem/abc/i
aross


6

ซับเดียวง่ายๆ ในตัวอย่างด้านล่างจะแทนที่ทุกเสียงสระด้วย X

function replaceWithRegex(str, regex, replaceWith) {
  return str.replace(regex, replaceWith);
}

replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.