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

Javascript 正在解析url.pathname()中的路径名,javascript,node.js,url,split,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); 我得到的结果是 /pr

我有一个网址如下

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

您可以使用regex来获取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
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)

更新2019 ES6答案:


您可以使用regex来获取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
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)

我认为您没有使用PHPY我没有使用PHPY您可以使用split轻松获得pwd1和pwd2。这有什么害处?是的,我不想使用split。除了使用split之外,我们还有其他方法吗?谢谢,我将尝试这种方法:)