我有一个网址如下
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。任何帮助都会非常有用。
答案 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)