如何简化这个Javascript子串切片搜索功能

时间:2017-01-10 17:19:37

标签: javascript html django url

我在HREF链接的HTML页面中有这样的URL:

<a id="view_server_link" href="{% url 'view_server' serverid=1 %}">

忽略模板中的Django变量。实际上,这会在呈现的HTML页面中生成纯文本URL,如:

http://site.domain.com/page/1/

我试图孤立这个:

http://site.domain.com/page/

在JS变量中,以便稍后我可以动态修改HREF URL。所有这些都有效,但我的URL减少/隔离功能看起来很臃肿。我希望有人在这里找到一种方法来简化它。再一次,这对我有用。

注意:我不想假设/ 1 /部分始终是数字1。

var $view_server_href = $('#view_server_link').attr('href').substring(0, $('#view_server_link').attr('href').slice(0, -1).search(/\/\w*$/) + 1);

2 个答案:

答案 0 :(得分:0)

听起来您只想在最后将/1/更改为/(其中1可以是任意数字系列)。如果是这样,一个简单的.replace(/\/\d+\/$/, '/')应该这样做:

var $view_server_href = $('#view_server_link').attr('href').replace(/\/\d+\/$/, '/');
console.log($view_server_href);
<a href="http://site.domain.com/page/1/" id="view_server_link">foo</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:0)

可以尝试:

url=url.split("/");
url.pop();//remove last elem
url=url.join("/");

短(或多或少:/(更准确地说:混淆):

url=url.split("/").map((e,i,arr)=>i==arr.length-1?undefined:e).join("/");