Chỉ cần mở rộng các phương pháp Chuỗi ... như một phần thưởng tôi thêm một trận đấu case-insensitive
// Only line you really need
String.prototype.has = function(text) { return this.toLowerCase().indexOf("[" + text.toLowerCase() + "]") != -1; };
// As per your example
var Countries = " [United States] [Canada] [India] ";
// Check Spain
if (Countries.has("Spain")) {
alert("We got Paella!");
}
// Check Canada
if (Countries.has("Canada")) {
alert("We got canadian girls!");
}
// Check Malformed Canada
if (Countries.has("cAnAdA")) {
alert("We got insensitive cAnAdiAn girls!");
}
// This Check should be false, as it only matches part of a country
if (Countries.has("Ana")) {
alert("We got Ana, bad, bad!");
}
Demo:http://jsfiddle.net/xNGQU/2/
Nguồn
2012-04-04 16:01:14
Đây là cách thực hiện đúng, ngoại trừ việc bạn nên kiểm tra xem 'i ndexOf' không trả về '-1', nếu không thì kiểm tra của bạn sẽ thất bại cho mục đầu tiên trong danh sách vì nó sẽ trả về' 0'. –
@Matt Cảm ơn bạn hoàn toàn chính xác. Tôi thực sự muốn đặt '> -1' và bị phân tâm và thậm chí không nhận ra sai lầm của mình. – qw3n