解析url.pathname()中的路径名

javascript node.js url split

214 观看

2回复

740 作者的声誉

我有一个网址如下

localhost:1340/promotionDetails/pwd1/pwd2?promotion_id=PROM008765

我使用url模块解析下面路径名的url是代码

var url=require('url').parse('http://localhost:1340/promotionDetails/pwd1/pwd2?  promotion_id=PROM008765', true).pathname
console.log(url);

我得到的输出是

/promotionDetails/pwd1/pwd2

我使用split函数从路径中获取pwd1和pwd2。我想知道是否有其他方法可以在不使用split函数的情况下获取pwd1和pwd2。任何帮助都会非常有用。

作者: Amanda G 的来源 发布者: 2013 年 3 月 11 日

回应 2


0

38198 作者的声誉

你可以正则表达式获取url目录而不使用split。

var myurl = "localhost:1340/promotionDetails/pwd1/pwd2?promotion_id=PROM008765";
var match = myurl.match(/[^/?]*[^/?]/g);
/* matches everything between / or ?
[ 'localhost:1340',
  'promotionDetails',
  'pwd1',
  'pwd2',
  'promotion_id=PROM008765' ]
*/
console.log(match[2]);//pwd1
console.log(match[3]);//pwd2
作者: user568109 发布者: 2013 年 3 月 11 日

0

254 作者的声誉

更新2019年ES6答案:

你可以正则表达式获取url目录而不使用split。

const myurl = "localhost:1340/promotionDetails/pwd1/pwd2?promotion_id=PROM008765";     
const filteredURL = myurl.match(/[^/?]*[^/?]/g).filter((urlParts) => {
    return urlParts !== 'promotionDetails' && urlParts !== 'localhost:1340'
})

const [pwd1, pwd2] = filteredURL;

console.log(pwd1)
console.log(pwd2)
作者: Zardoz 发布者: 2019 年 6 月 28 日
32x32