2015-03-15 6 views
0

У меня есть этот кодНе удается получить LastIndexOf работать

var url = 'http://sitename.com/category/diving/', 
    catName = url.substr(url.lastIndexOf('/') + 1); 

И когда я пытаюсь запустить alert(catName) он возвращает пустую строку. Что я делаю не так?

+0

Вопрос в том, что вы хотите вернуть? –

+0

Попробуйте выполнить некоторую отладку. Например, сделайте 'url.lastIndexOf ('/')', и вы увидите, что он возвращает '35', что является правильным индексом последнего'/'. Оттуда вы можете решить другую часть своей проблемы. –

ответ

2

Вам нужно название категории, но вы должны сначала удалить последний /:

var url = 'http://sitename.com/category/diving/'; 
url = url.substr(0, url.length - 1); 
catName = url.substr(url.lastIndexOf('/') + 1); 

Результат:

"diving" 
1

потому что вы добавляете +1 к индексу, чтобы получить неопределенную строку. удалить +1 в LastIndexOf

+0

Затем он возвращает '/'. Когда я добавляю '-1', он возвращает' g/'. –

+0

@TomekBuszewski Я думаю, что вы недопонимаете субстрат. –

+0

Странно. Я всегда использовал этот код, чтобы получить последний сегмент URL ... –

0

Вы можете использовать .. parseUri

var url = 'http://sitename.com/category/diving/'; 
url = url.substr(0, url.length - 1); 
var filename1 = parseUri(url).file;--way1 
var filename2 = url.match(/.*\/(.*)$/)[1]; 

Result="diving"; 

Ways to achieve this

+0

Где вы определяете 'parseUri'? –

+0

Я просто добавляю @DavidSherret –

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