2013-06-02 2 views
3

Поэтому в основном я хочу сделать что-то другое для сайта, если URL содержит определенную строку, позволяет сказать: 'foo'яваскрипт если заявление, если URL содержит подстроку

Так это то, что у меня есть:

var url = document.URL; 
var substring = 'foo'; 
if(the substring is in the url){ 
//do something 
} 
else{ 
//do something 
}; 

Так что же было бы в if(), чтобы сделать это возможным?

+1

Поиск: JavaScript строка содержит подстроку – Dave

+0

(к сожалению, переполнение стека не позволит мне указать вам lmgtfy ...) – Dave

+3

[Позвольте мне помочь вам] (http://bit.ly/10JUfYN) – Jashwant

ответ

3

Вы можете использовать indexOf метод

// Function is used to determine whether a string contains another string 
function contains(search, find) { 
    ///<summary>Sees if a string contains another string</summary> 
    ///<param type="string" name="search">The string to search in</param> 
    ///<param type="string" name="find">The string to find</param> 
    ///<returns type="bool">A boolean value indicating whether the search string contained the find string</returns> 
    return search.indexOf(find) !== -1; 
} 

Вот некоторые Пример использования:

var url = document.URL; 
var substring = 'foo'; 
if (contains(url.toLowerCase(), substring.toLowerCase()) { 
// Contains string 
} 

содержит функция случай sentitive, howe веры; как показано в моем примере, вы можете сделать его нечувствительным, вызвав метод StringPrototype.toLowerCase

1

Вы можете использовать indexOf, например:

if (url.indexOf(substring)>=0) { 
0

Это прогноз в прямом направлении и не будет работать в текущих реализациях.

В настоящее время ECMAScript 6 определяет метод String.prototype.contains. Это позволит вам:

if (url.contains(substring)) { 

Опять же, это будущее дополнение. В настоящее время разрабатывается ECMAScript 6 (Гармония), и это можно технически удалить, хотя это, похоже, не представляется возможным.

Текущий проект:

15.5.4.24 String.prototype.contains (SearchString, позиция = 0)

класс содержит метод принимает два аргумента, SearchString и положение, и выполняет следующие этапы:

  1. Да O be CheckObjectCoercible(this value).
  2. Да S be ToString(O).
  3. ReturnIfAbrupt(S).
  4. Да searchStr be ToString(searchString).
  5. ReturnIfAbrupt(searchStr).
  6. Да pos be ToInteger(position). (Если position - undefined, этот шаг дает значение 0).
  7. ReturnIfAbrupt(pos).
  8. Позвольте len быть числом элементов в S.
  9. Да start be min(max(pos, 0), len).
  10. Пусть searchLen - количество символов в searchStr.
  11. Если существует любое целое число k не меньше, чем начать такое, что k + searchLen не больше, чем len, и для всех целых неотрицательных j менее searchLen, символ в позиции k+j из S такой же, как и характер в положении j из searchStr , возврат true; но если такого целого нет k, верните false.
+0

Если у вас возникли проблемы с пониманием этого ответа, спросите, пожалуйста, вместо голосования, хотя я не знаю, как это может быть более ясно или хорошо документировано, чем то, что я описал. –

Смежные вопросы