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);
}