Который должен сохранять строки запроса или фрагменты URL в конце URL.

ипте jQuery у меня есть строка кода, которая получает строку текущего URL:

var target = $(this).attr('href');

Может ли код в этом скрипте проверить наличие косой черты в конце строки URL. Если он присутствует, то удалите его? Какой способ сделать это, вы могли бы порекомендовать?

 rem19 янв. 2011 г., 21:38
Спасибо! Исправленный.
 Pointy19 янв. 2011 г., 21:36
Просто чтобы нам было ясно: "/" этослэши "\" являетсяобратный слэш

Ответы на вопрос(4)

Решение Вопроса

Я бы сделал это:

 target = target.replace(/\/$/, '');

Теперь, если вам нужно беспокоиться о наличии строки запроса:

 <a href='http://foo.bar.com/something/?param=xyz'>hi</a>

тогда все становится немного сложнее. Синтаксический анализ URL с помощью регулярных выражений, возможно, возможен, но он довольно грязный. Если вам это сойдет с рук, сузьте возможности того, как могут выглядеть ваши URL, чтобы вам не приходилось использовать какой-то большой "официальный" шаблон.

 ARUN13 июн. 2016 г., 12:21
как убрать косую черту с начала текста?
 Martin Jespersen19 янв. 2011 г., 21:42
Еще лучше, продолжайте стиль цепочки jquery и сделайтеvar target = $(this).attr('href').replace(/\/$/,'');
 Pointy19 янв. 2011 г., 22:07
@Martin Jespersen да, в реальном коде это (вероятно) то, что я бы сделал, но я хотел, чтобы пример был действительно ясным с точки зрения «хорошей» части.

что вы имеете в виду косую черту, одним из возможных решений будет:

var l = target.length - 1;
if(target.lastIndexOf('/') === l) {
    target = target.substring(0, l);
}

target.replace (// + ((\? | #). *)? $ /, '$ 1');

Который должен сохранять строки запроса или фрагменты URL в конце URL.

И это не использует регулярное выражение ....

var urlEnd = target.indexOf("?");
if(urlEnd == -1){
    urlEnd = target.length;
}

// Don't bother doing anything if the URL is empty
if (urlEnd > 0){
    if (target[urlEnd - 1] == "/"){
        $(this).attr('href', target.substr(0, urlEnd-1) + target.substr(urlEnd));
    }    
}

Ваш ответ на вопрос