关于Javascript:Javascript – 如果URL字符串的Last Character是“+”,那么删除它……怎么样?

Javascript - If Last Character of a URL string is “+” then remove it…How?

这是现有问题的延续。javascript-基于下拉选择转到URL(续!)

我使用下拉选择允许我的用户建立一个网址,然后点击"去"转到它。

有没有什么方法可以添加一个额外的函数,在访问URL之前检查它?

我的URL有时包含"+"字符,如果它是URL中的最后一个字符,我需要删除它。所以它基本上需要是"如果最后一个字符是+,请删除它"

这是我的代码:

1
2
3
4
5
6
7
8
9
10
$(window).load(function(){
    $('form').submit(function(e){
        window.location.href =
            $('#dd0').val() +
            $('#dd1').val()+
            $('#dd2').val()+
            $('#dd3').val();
        e.preventDefault();
    });
});


1
2
3
var url = /* whatever */;

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

例如,

1
2
> 'foobar+'.replace(/\+$/, '');
 "foobar"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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();
    });
});


使用str.endsWith("str")找到另一个解决方案

1
2
3
4
5
6
7
8
var str ="Hello this is test+";
if(str.endsWith("+")) {
  str = str.slice(0,-1);
  console.log(str)
}
else {
  console.log(str);
}


1
2
3
4
5
6
function removeLastPlus(str) {
  if (str.slice(-1) == '+') {
    return str.slice(0, -1);  
  }
  return str;
}


1
2
3
4
5
6
7
8
9
10
11
$(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();
    });
});

只是看起来容易些。


1
2
3
4
5
6
7
8
9
10
<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;
    }
  }