Javascript - если последний символ строки URL-адреса "+", то удалить его... Как?
Это продолжение из существующего вопроса. Javascript - Перейти к URL-адресу, основанному на выпадающем списке (продолжение!)
Я использую dropdown selects, чтобы позволить моим пользователям создавать URL-адрес, а затем нажать "Go", чтобы перейти к нему.
Есть ли способ добавить дополнительную функцию, которая проверяет URL-адрес перед тем, как перейти к нему?
Мои URL иногда включают символ "+", который мне нужно удалить, если его последний символ в URL-адресе.
Поэтому в основном это должно быть "если последний символ +, удалить его"
Это мой код:
$(window).load(function(){
$('form').submit(function(e){
window.location.href =
$('#dd0').val() +
$('#dd1').val()+
$('#dd2').val()+
$('#dd3').val();
e.preventDefault();
});
});
Ответы
Ответ 1
function removeLastPlus (myUrl)
{
if (myUrl.substring(myUrl.length-1) == "+")
{
myUrl = myUrl.substring(0, myUrl.length-1);
}
return myUrl;
}
$(window).load(function(){
$('form').submit(function(e){
var newUrl = $('#dd0').val() +
$('#dd1').val()+
$('#dd2').val()+
$('#dd3').val();
newUrl = removeLastPlus(newUrl);
window.location.href = newUrl;
e.preventDefault();
});
});
Ответ 2
var url = /* whatever */;
url = url.replace(/\+$/, '');
Например,
> 'foobar+'.replace(/\+$/, '');
"foobar"
Ответ 3
<script type="text/javascript">
function truncate_plus(input_string) {
if(input_string.substr(input_string.length - 1, 1) == '+') {
return input_string.substr(0, input_string.length - 1);
}
else
{
return input_string;
}
}
</script>
Ответ 4
$(window).load(function(){
$('form').submit(function(e){
var newUrl = $('#dd0').val() +
$('#dd1').val()+
$('#dd2').val()+
$('#dd3').val();
newUrl = newUrl.replace(/\+$/, '');
window.location.href = newUrl;
e.preventDefault();
});
});
Просто кажется проще.
Ответ 5
function removeLastPlus(str) {
if (str.slice(-1) == '+') {
return str.slice(0, -1);
}
return str;
}
Ответ 6
Нашел другое решение, используя str.endsWith("str")
var str = "Hello this is test+";
if(str.endsWith("+")) {
str = str.slice(0,-1);
console.log(str)
}
else {
console.log(str);
}