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

时间:2013-03-11 05:39:41

标签: javascript node.js url split

我有一个网址如下

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。任何帮助都会非常有用。

2 个答案:

答案 0 :(得分:0)

你可以正则表达式获取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

答案 1 :(得分:0)

更新了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)