从 URL 中的两个相同字符之间获取子字符串

Get substring from between two identical characters in a URL

我如何从 URL:

中的两个斜线之间提取数字

https://myDomain.sharepoint.com/sites/MySite/SitePages/MyPage.aspx?/id=612/&CT=1223336827303&OR=OWA-NT&CID=7f71df69-6cef-fd22-82d9-5823a32895f9

我只想要号码(在本例中为 612,但号码可以不同,长度也可以不同),除此之外别无其他。

我试过的代码:

    if(window.location.href.indexOf("id=") > -1){
      var url = window.location.href;
      console.log(url, 'url');
      var findUrl = window.location.search;
      console.log(findUrl, 'findUrl');
       var url2 = url.substring(url.indexOf("=") + 1);
      console.log(url2, 'url2');

      var url3 = url.substring(
        url.lastIndexOf("/") + 1,
        url.lastIndexOf("/")
      );

      var url4 = url.split('/').pop().split('/')[0];

      console.log(url3, 'url3');
      console.log(url4, 'url4');
      
      this.setState({
        Id: url4,
        filterValue: url4
 
      },  () => {
        
       this._editItemUrl();
      });
     
    }

我读过: How do you use a variable in a regular expression? JavaScript - Use variable in string match get string between two strings with javascript

购买 none 回答我的具体问题。

您的问题是查询参数字符串中的正斜杠。如果你可以删除那些(str 替换),你可以使用 JS 的 URLSearchParams。

参见:https://www.sitepoint.com/get-url-parameters-with-javascript/