Вопрос по jquery, javascript – Удалить последний элемент из URL

16

Мне нужно удалить последнюю часть URL из диапазона.

Я име

<span st_url="http://localhost:8888/careers/php-web-developer-2"
st_title="PHP Web Developer 2" class="st_facebook_large" displaytext="facebook"
st_processed="yes"></span></span>

А мне нужно взятьst_url и удалитеphp-web-developer-2 от этого, так что это простоhttp://localhost:8888/careers/.

Но я не уверен, как это сделать.php-web-developer-2 не всегда будет таким, но не будет/ в этом. Это всегда будет- разделенная строка.

Любая помощь!!?

Ваш Ответ

6   ответов
10
$('span').attr('st_url', function(i, url) {
    var str = url.substr(url.lastIndexOf('/') + 1) + '$';
    return url.replace( new RegExp(str), '' );
});

DEMO

Plz обратите внимание, что это решение не является общим. Если последняя часть вашего URL-адреса также встречается в другом месте URL-адреса, это даст неверный результат; например Somewhere.com / тест / е' не удастся. Ответ Гисвея кажется лучше. dotNET
Это решение имеет очень большую ошибку, потому что если URL"http://localhost:8888/careers1/careers" результат будет"http://localhost:8888/1/careers", первый"careers" устране jscripter
Ваша демоверсия нуждается в доработке, поскольку она не демонстрирует решения. mikoop
15

так просто:

to = to == -1 ? url.length : to + 1;
url = url.substring(0, to);
Это работает лучше, потому что если у вас есть какое-то совпадение слов с путем, замена будет работать, удаляя первое совпадение Nath
Это очень хорошее решение. Я использовал его для своего проекта. Avinash Patil
10

Использовать этот

$('span').attr('st_url', function(i, url) {
    var to = url.lastIndexOf('/') +1;

    x =  url.substring(0,to);
    alert(x);
})​

Ты можешь видеть Demo

Удалить+1 если хочешь убрать косую черту Chris Marisic
3

ти URL»:

var url="http://localhost:8888/careers/php-web-developer";

var baseurl=url.replace(
    new RegExp("(.*/)[^/]+$"),
    "$1") );

В сущности, RegExp говорит: «сопоставить что-либо, затем косую черту, а затем все не косые черты до конца строки».

Функция замены берет эту совпадающую часть и заменяет ее частью строки «что-нибудь, затем косая черта».

RegexBuddy имеет много информации обо всем этом.

Я предпочитаю регулярные выражения. Это должен быть принятый ответ jscripter
Upvoted. На мой взгляд, лучший способ соответствовать «концу строки». Но я, к слову, по-прежнему ненавижу решения регулярных выражений по умолчанию. FlipMcF
2

Вы можете увидеть, как это работает здесь:http: //jsfiddle.net/xKxLR

var url = "http://localhost:8888/careers/php-web-developer-2";
var regex = new RegExp('/[^/]*$');
console.log(url.replace(regex, '/'));
хм ... я сомневался насчет* или+ ... Ваша версия допускает пустой хвост " Ххх / ууу ", у меня нет, оба, кажется, работают (в моем, замена не выполняется, я думаю) xtofl
0

url, которое является вашим URL. Затем используйте цикл из последнего символа извлеченного URL-адреса и опускайте их, пока не увидите символ «/». Вот как вы должны извлечь то, что вы хотите. Имейте это в виду и попробуйте написать код.

Похожие вопросы