Проверьте, начинается ли строка с чего-то?

Возможный дубликат:
Javascript StartsWith

Я знаю, что я могу сделать, как ^ =, чтобы увидеть, начинается ли id с чего-то, и я попытался использовать это для этого, но это не сработало... В основном, я извлекаю URL-адрес, и я хочу установить класс для элемента для путей, который начинается определенным образом...

Итак,

var pathname = window.location.pathname;  //gives me /sub/1/train/yonks/459087

Я хочу убедиться, что для каждого пути, начинающегося с /sub/ 1, я могу установить класс для элемента...

if(pathname ^= '/sub/1') {  //this didn't work... 
        ... 

Ответ 1

Используйте stringObject.substring

if (pathname.substring(0, 6) == "/sub/1") {
    // ...
}

Ответ 2

String.prototype.startsWith = function(needle)
{
    return(this.indexOf(needle) == 0);
};

Ответ 3

Вы можете использовать string.match() и регулярное выражение для этого:

if(pathname.match(/^\/sub\/1/)) { // you need to escape the slashes

string.match() вернет массив совпадающих подстрок, если он найден, иначе null.

Ответ 4

Немного более многоразовая функция:

beginsWith = function(needle, haystack){
    return (haystack.substr(0, needle.length) == needle);
}

Ответ 5

Сначала давайте расширим строковый объект. Благодаря Ricardo Peres для прототипа, я думаю, что использование переменной "string" работает лучше, чем "игла" в контексте повышения ее удобочитаемости.

String.prototype.beginsWith = function (string) {
    return(this.indexOf(string) === 0);
};

Затем вы используете его так. Внимание! Делает код чрезвычайно читаемым.

var pathname = window.location.pathname;
if (pathname.beginsWith('/sub/1')) {
    // Do stuff here
}

Ответ 6

Посмотрите на JavaScript substring().