Проверка JQuery и удаление косой черты с конца URL-адреса
В jQuery script у меня есть строка кода, которая получает строку текущего URL:
var target = $(this).attr('href');
Может ли код в этом script проверить, есть ли коса в конце строки URL. Если он присутствует, то удалите его? Каким образом это можно сделать, вы могли бы порекомендовать?
Ответы
Ответ 1
Я бы сделал это:
target = target.replace(/\/$/, '');
Теперь, если вам нужно беспокоиться о наличии строки запроса:
<a href='http://foo.bar.com/something/?param=xyz'>hi</a>
тогда все становится немного сложнее. Разбор URL с регулярным выражением, вероятно, возможен, но он довольно грязный. Если вам это удастся, ограничьте возможности того, как выглядят ваши URL-адреса, чтобы вам не пришлось использовать какой-то большой огромный "официальный" шаблон.
Ответ 2
Это также должно быть безопасно для 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));
}
}
Ответ 3
Предполагая, что вы имеете в виду косую черту, одним из возможных решений было бы следующее:
var l = target.length - 1;
if(target.lastIndexOf('/') === l) {
target = target.substring(0, l);
}
Ответ 4
Вы можете сделать это с помощью регулярного выражения, например:
target.replace(//+ ((\? | #). *)? $/, '$ 1');
Что должно сохранить строки запроса или фрагменты URL-адреса в конце URL-адреса.