我有三个链接:

"http//example.com/product/iphone?source=ac"
"http//example.com/product/samsung?source=tz"
"http//example.com/product/sony?source=sn"

我想拆分字符串,得到如下两个变量:

var link1 = 'http//example.com/product/iphone';
var link2 = '?source=ac'

// The others are similar
//var link1 = 'http//example.com/product/samsung';
//var link2 = '?source=tz'
//var link1 = 'http//example.com/product/sony';
//var link2 = '?source=sn'

请给我你的意见,并在这种情况下帮助我,我对javascript真的很陌生.这很难.谢谢大家

推荐答案

以下是使用match的基于regex的方法:

var urls = ["http://example.com/product/iphone?source=ac", "https://example.com/product/iphone"];
for (var i=0; i < urls.length; ++i) {
    var parts = urls[i].match(/https?:\/\/[^?]+|\?.*/g);
    console.log(urls[i] + "\nurl => " + parts[0] + ", query => " + parts[1]);
}

Javascript相关问答推荐

当在select中 Select 选项时,我必须禁用不匹配的 Select

node TS:JWT令牌签名以验证客户端和后台问题之间的身份验证

使用复选框在d3.js多折线图中添加或删除线条

. NET中Unix时间转换为日期时间的奇怪行为

如何在angular中从JSON值添加动态路由保护?

如何避免页面第一次加载时由于CSS样式通过JavaScript更改而出现闪烁

变量的值在Reaction组件中的Try-Catch语句之外丢失

如何迭代叔父元素的子HTML元素

使用js构造一个html<;ath&>元素并不能使其正确呈现

将对象推送到数组会导致复制

MongoDB受困于太多的数据

如何使用<;Link>;执行与JS Reaction中的";window.Location=/GameOverDied;";类似的操作?

无法检索与Puppeteer的蒸汽游戏的Bundle 包价格

将Auth0用户对象存储在nextjs类型脚本的Reaction上下文中

如何使用Reaction路由导航测试挂钩?

在对象的嵌套数组中添加两个属性

使用onClick单击子元素时,使用交点观察器的关键帧动画意外运行

如何在preLoad()中自定义p5.js默认加载动画?

JQuery-无法 Select 使用elementor添加的元素的值

This.forceUPDATE并通过Reaction-Router-DOM链接组件传递状态