美文网首页
【正则】根据自定的匹配规则生成url

【正则】根据自定的匹配规则生成url

作者: 薯条你哪里跑 | 来源:发表于2021-04-08 18:41 被阅读0次

题目

    const source_path = "demo/xixi/haha/abc12323.html"            // 原始请求url
    const math_rule = "/xixi/${_id}/abc${cid}.html$"              // 匹配规则
    const target_path = "http://127.0.0.1:8001/gg/${cid}/${_id}"; // 目标url

说明:如果匹配的规则命中原始url则将目标url替换成匹配命中的路径,若未命中返回null;上述例子应返回:

http://127.0.0.1:8001/gg/12323/haha

解答

    function changeTargetUrl(source_path,math_rule,target_path) {
        // 将math_rule中变量进行正则替换  /\/xixi\/(.+)\/abc(.+).html$/
        const reg = math_rule.replace('/','\/').replace(/\$\{(.+?)\}/g, '(.+)')
        // 从source_path中将变量的值取出
        // ["/xixi/haha/abc12323.html", "haha", "12323", index: 4, input: "demo/xixi/haha/abc12323.html", groups: undefined]
        const afterPickParams = source_path.match(reg)
        if (!afterPickParams) {
            return null
        }
        // 将math_rule中变量提取出来 ["${_id}", "${cid}"]
        const pickParams = math_rule.match(/\$\{(.+?)\}/g);
        // pickParams循环需要替换的变量,在afterPickParams中找出并替换
        for(let key in pickParams){
            const targetKey = pickParams[key]
            const pickObjIdx = Number(key)+1
            target_path=target_path.replace(targetKey, afterPickParams[pickObjIdx])
        }
        console.log(target_path)
        return target_path
    }

相关文章

  • 【正则】根据自定的匹配规则生成url

    题目 说明:如果匹配的规则命中原始url则将目标url替换成匹配命中的路径,若未命中返回null;上述例子应返回: 解答

  • 2019-11-11

    模糊查询URL匹配的url ,根据匹配度倒序排序匹配规则: 筛选查询根据一下三个条件来筛选 服务平台 接入方(平台...

  • Nginx location的正则匹配

    Nginx location的正则匹配 Nginx正则匹配的匹配规则

  • nginx配置-rewrite地址重写

    server {rewrite 规则 定向路径 重写类型;}规则:可以是字符串或者正则来表示想匹配的目标url定向...

  • Nginx rewrite配置规则

    rewrite语法 1、规则:可以是字符串或者正则来表示想匹配的目标url2、定向路径:表示匹配到规则后要定向的路...

  • Django-4模板

    反向解析,根据规则生成url,所以namespace是可以用于解析. 自动生成url所以url改变也不用更改模板了...

  • 在golang中使用正则匹配自定义模板SQL中 like 后的字

    场景: 我们在后台根据自定义SQL模板生成接口,自定义接口所传递的参数会根据模板中的参数进行匹配生成需要执行的SQ...

  • fiddler设置重定向url

    fiddler支持将指定模式的url映射到另一个指定的url,匹配的正则规则可参考 在线调试利器 ,这里着重说下在...

  • Route

    General 匹配: Static URL Segments 匹配: Mixed 匹配: 应用: 会匹配到 自定...

  • 正则表达式用法记录

    正则是干什么的 正则是一种规则,用来匹配和捕获字符串的规则。 正则的规则 元字符 反义字符 转义字符 重复匹配 分...

网友评论

      本文标题:【正则】根据自定的匹配规则生成url

      本文链接:https://www.haomeiwen.com/subject/aevvkltx.html