Javascript - Если последний символ строки URL-адреса "+", то удалите его ... Как? - PullRequest
17 голосов
/ 06 июня 2011

Это продолжение существующего вопроса. Javascript - URL перехода на основе выпадающего списка (продолжение!)

Я использую выпадающие списки, чтобы мои пользователи могли создать URL, а затем нажать «Перейти», чтобы перейти к нему.

Есть ли способ добавить дополнительную функцию, которая проверяет URL, прежде чем перейти к нему?

Мои URL-адреса иногда содержат символ «+», который мне нужно удалить, если это последний символ в URL-адресе. Так что в основном это должно быть "если последний символ +, удалить его"

Это мой код:

$(window).load(function(){
    $('form').submit(function(e){
        window.location.href = 
            $('#dd0').val() +
            $('#dd1').val()+
            $('#dd2').val()+
            $('#dd3').val();
        e.preventDefault();
    });
});

Ответы [ 6 ]

27 голосов
/ 06 июня 2011
var url = /* whatever */;

url = url.replace(/\+$/, '');

Например,

> 'foobar+'.replace(/\+$/, '');
  "foobar"
26 голосов
/ 06 июня 2011
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();
    });
});
0 голосов
/ 21 декабря 2017

Нашел другое решение, используя str.endsWith("str")

var str = "Hello this is test+";
if(str.endsWith("+")) {
  str = str.slice(0,-1);
  console.log(str)
}
else {
  console.log(str);
}
0 голосов
/ 30 сентября 2015

function removeLastPlus(str) {
  if (str.slice(-1) == '+') {
    return str.slice(0, -1);  
  }
  return str;
}
0 голосов
/ 04 июля 2011
$(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();
    });
});

Просто кажется проще.

0 голосов
/ 06 июня 2011
<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...