Обнаружить, если строка содержит строку в JQuery/Javascript, когда строка разделена необычно

У меня строка, подобная так (это не массив, это прямая строка)

string = "[Соединенные Штаты] [Канада] [Индия]";

Я хочу сделать что-то вроде ниже.

if( string contains "Canada" ) {
 //Do Canada stuff here
}

Спасибо за любые советы

Ответы

Ответ 1

var string = '[United States][Canada][India]';
var search = 'Canada';
if (string.indexOf('[' + search + ']') !== -1) {
  // Whatever
}

Ответ 2

Просто расширьте методы String... в качестве бонуса я добавил нечувствительность к регистру

// 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!");
} 

Демо: http://jsfiddle.net/xNGQU/2/