从href中获取url的结束文本

时间:2017-06-22 15:48:18

标签: javascript jquery

我有一个链接可以打开包含信息的页面。我需要获取该信息并将其显示在另一页的一部分上。我有一个链接使用令牌来获取适当的链接,因为每个页面都不同。示例链接如下所示:

<a id="ItemDetail_SpecPageLink" style="display: none;" class="ItemDetailLocAvail" href="/customer/wetosu/specpages/FactoryStock.aspx?item=65048"></a>

要更改的链接的唯一部分是item=之后的所有内容。我开始编写我所知道的代码,但我不知道如何编写代码“抓住item=之后的所有内容”并将其设置为var。我在这里找不到像我这样的问题,因为每个人都试图找到链接的相同特定文本,而我的,我需要抓住item=之后的任何内容。

我正在使用这个编码来获取信息,我知道我的var factoryLink抓住了整个链接,但那是我坚持的部分,我不想把它留下来:

//GET FACTORY AVAILABILITY
var factoryLink = $('#ItemDetail_SpecPageLink').attr('href');

$.ajax({
    url: ('/customer/wetosu/specpages/FactoryStock.aspx?item=' + factoryLink),
    type: 'GET',
    success: function (data) {
        $('#FactoryAvailability').html(data);
    }
});

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

item=(.+)$

正则表达式细分:

  • item=您想要匹配的第一部分
  • ( capture group
  • 的开头
  • .+表示无限次匹配任何内容
  • )捕获组的结束
  • $字符串的结尾

The result of String.prototype.match is an array,第一个参数是整个匹配,第一个参数是第一个捕获组中的第二个参数。

希望这有帮助。

var factoryLink = $('#ItemDetail_SpecPageLink').attr('href');

var yourId = factoryLink.match(/item=(.+)$/)[1];

console.log({yourId});

// do what you want with it
// $.ajax({
//   url: ('/customer/wetosu/specpages/FactoryStock.aspx?item=' + yourId),
//   type: 'GET',
//   success: function(data) {
//     $('#FactoryAvailability').html(data);
//   }
// });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <a id="ItemDetail_SpecPageLink" class="ItemDetailLocAvail" href="/customer/wetosu/specpages/FactoryStock.aspx?item=65048">Some link</a>

Read more about javascript's regex on MDN.