Ответ 1
Используйте stringObject.substring
if (pathname.substring(0, 6) == "/sub/1") {
// ...
}
Возможный дубликат:
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...
...
Используйте stringObject.substring
if (pathname.substring(0, 6) == "/sub/1") {
// ...
}
String.prototype.startsWith = function(needle)
{
return(this.indexOf(needle) == 0);
};
Вы можете использовать string.match() и регулярное выражение для этого:
if(pathname.match(/^\/sub\/1/)) { // you need to escape the slashes
string.match()
вернет массив совпадающих подстрок, если он найден, иначе null.
Немного более многоразовая функция:
beginsWith = function(needle, haystack){
return (haystack.substr(0, needle.length) == needle);
}
Сначала давайте расширим строковый объект. Благодаря 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
}
Посмотрите на JavaScript substring()
.