js 正则匹配 返回值的处理方法

res.match(/data-pin-url="(.*?)"/g)

匹配返回的值 ,带上配置值了,
我只想返回的时候 给我URL就行了

使用正则匹配返回的值通常是一个数组,包含所有匹配的结果。
比如

<a data-pin-url="https://example.com/1">Link 1</a> 
<a data-pin-url="https://example.com/2">Link 2</a>
let res = "<a data-pin-url=\"(.*?)\">";
let matches = res.match(/data-pin-url="(.*?)"/g);

如果你只想获取匹配的URL

let url = matches[0]; 
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/1099021
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:JavaScript - 把 URL 路径参数拆分为对象键值对形式(将页面路由的所有参数解析转为对象形式)
  • 除此之外, 这篇博客: js 实际应用中如何将后台返回字符串中的URL链接与文字进行提取拼接组合,文字做展示,URL做跳转中的 首先第一步 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • js用正则表达式获取字符串中URL链接
    
      let str = '亲,为您找到车次信息 a(http://touch.qunar.com/trainDetail.jsp?searchType=number&startstation=&endstation=&number=1111    )[请点击查看...]'
    //
    function httpString(s) {
      var reg = /(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g;
      var reg= /(https?|http|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/g;
      s = s.match(reg);
      return(s)
    }
    console.log(httpString(str)[0])
    // http://touch.qunar.com/trainDetail.jsp?searchType=number&startstation=&endstation=&number=1111
    
  • 以下回答由chatgpt基于相关博客总结生成:

    根据参考资料提供的代码段落和问题要求,可以通过正则表达式来只返回URL部分,忽略其他配置项的信息。具体步骤如下:

    1. 截取URL部分: 正则表达式为 /^(?:\w+:)?\/\/([^\s\.]+\.\S{2,}|localhost[:?\d]*)\S*$/,使用match方法匹配URL并提取。代码如下:
    function getUrl(url) {
      let regex = /^(?:\w+:)?\/\/([^\s\.]+\.\S{2,}|localhost[:?\d]*)\S*$/
      let matches = url.match(regex)
      return matches[0]
    }
    
    1. 调用函数: 调用getUrl函数并传入URL,就可以只返回URL部分了。代码如下:
    let url = 'http://www.baidu.com/we/index.html?id=098&aaa=123&ccc=456'
    console.log(getUrl(url))
    

    完整代码如下:

    function getUrl(url) {
      let regex = /^(?:\w+:)?\/\/([^\s\.]+\.\S{2,}|localhost[:?\d]*)\S*$/
      let matches = url.match(regex)
      return matches[0]
    }
    
    let url = 'http://www.baidu.com/we/index.html?id=098&aaa=123&ccc=456'
    console.log(getUrl(url))
    

    运行结果就是只返回URL部分,忽略其他配置项的信息。

假设s是你匹配的结果,你可以再做一个s = s.split('=')[1] 将前面的切掉。