Regex không phân biệt chữ hoa chữ thường trong JavaScript


121

Tôi muốn trích xuất một chuỗi truy vấn từ URL của mình bằng JavaScript và tôi muốn thực hiện so sánh không phân biệt chữ hoa chữ thường cho tên chuỗi truy vấn. Đây là những gì tôi đang làm:

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

Nhưng đoạn mã trên thực hiện tìm kiếm phân biệt chữ hoa chữ thường. Tôi đã thử /<regex>/inhưng nó không giúp được gì. Bất kỳ ý tưởng làm thế nào có thể đạt được điều đó?


5
Đó là nghĩa đen định dạng / regex / i nên làm việc, trừ khi bạn cố gắng để nối nó hoặc một cái gì đó ...
Alex

Câu trả lời:


211

Bạn có thể thêm công cụ sửa đổi 'i' có nghĩa là "bỏ qua trường hợp"

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

2
Có cách nào để tôi biến nó thành một chuỗi không?
Hồng y - Phục hồi Monica

11
@CardinalSystem/abc/i
toàn bộ

42

các sửa đổi được đưa ra dưới dạng tham số thứ hai:

new RegExp('[\\?&]' + name + '=([^&#]*)', "i")

hoặcnew RegExp('^' + string + '$', "i")
Vadim

6

Đơn giản một lớp lót. Trong ví dụ dưới đây, nó thay thế mọi nguyên âm bằng X.

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

replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.