编辑代码

var str = 'https://juejin.cn/post/7201491839815139389#lun?name=jack&age=18';
var str2 = 'https://juejin.cn/post/7201491839815139389';
var str3 = 'https://juejin.cn';

function test (str) {
    const matchResult = str.match(/(https?:\/\/.+.cn)([^#]*)(#?[^?]*)\??(.*)/);
    return {
        origin: matchResult[1] || '',
        path: matchResult[2] || '',
        hash: matchResult[3] || '',
        query: matchResult[4] || {}
    };
}
console.log(test(str));
console.log(test(str2));
console.log(test(str3));