替换JavaScript中URL字符串中的特定值

替换JavaScript中URL字符串中的特定值,javascript,jquery,Javascript,Jquery,我有一个URL类似的字符串: var url ="http://ispeakphone.com/checkout/cart/add/uenc/aHR0cDovL2lzcGVha3Bob25lLmNvbS9zYW1zdW5nL3NhbXN1bmctZ2FsYXh5LXMvZ2FsYXh5LXM5LXBsdXMuaHRtbA,,/product/619/form_key/foxmD7jgFv31xmEs/qty/3/?options=cart"; 我从输入中获取按钮点击的数量,如: var qty

我有一个URL类似的字符串:

var url ="http://ispeakphone.com/checkout/cart/add/uenc/aHR0cDovL2lzcGVha3Bob25lLmNvbS9zYW1zdW5nL3NhbXN1bmctZ2FsYXh5LXMvZ2FsYXh5LXM5LXBsdXMuaHRtbA,,/product/619/form_key/foxmD7jgFv31xmEs/qty/3/?options=cart";
我从输入中获取按钮点击的数量,如:

var qty = jQuery(this).siblings('.quantity-field').val(); // 4 
每次单击按钮从输入中获得新值时,如何将URL字符串
“/qty/3/”
中的此数量更改为
“/qty/4/”

我不能简单地查找和替换,因为我不知道确切的数字,它的动态可能是2,3,4,5等。你可以使用替换方法

根据需要,在
组1(g1)
中捕获
/qty
之前的所有内容,在
组2(g2)
中捕获所有以下数字,并在
组3(g3)
中捕获剩余的内容

var url=”http://ispeakphone.com/checkout/cart/add/uenc/aHR0cDovL2lzcGVha3Bob25lLmNvbS9zYW1zdW5nL3NhbXN1bmctZ2FsYXh5LXMvZ2FsYXh5LXM5LXBsdXMuaHRtbA、、/product/619/form_key/foxmD7jgFv31xmEs/qty/3/?options=cart”;
让所需=url。替换(/^(.\/qty\/)(\d+)(.*)$/g,函数(匹配,g1,g2,g3){
返回g1+(数字(g2)+1)+g3
})

console.log(需要)
这里是具有此功能的函数

function changeValue(str,value){
    return str.replace(/\/qty\/[0-9]+\//,`\/qty\/${value}\/`)
}
console.log(url,4);

可能的重复为什么不从字符串部分开始http://ispeakphone.com/checkout/cart/add/uenc/aHR0cDovL2lzcGVha3Bob25lLmNvbS9zYW1zdW5nL3NhbXN1bmctZ2FsYXh5LXMvZ2FsYXh5LXM5LXBsdXMuaHRtbA、、/product/619/form_key/foxmD7jgFv31xmEs/qty/”和
“/?options=cart”
,然后在每次需要时使用当前值构建新字符串?此项不工作添加为新数量不重新添加请再次检查