Javascript 替换两个单词之间的href部分jquery

Javascript 替换两个单词之间的href部分jquery,javascript,jquery,Javascript,Jquery,这很简单,我以前也做过,但现在无法让它工作 我需要更改下面href中图像的名称 var href=https://www.facebook.com/sharer/sharer.php?u=http://myurl.com/&description=“tets”和图片=http://myurl.com/img/name-1654-45654.jpg $'.share、.share-2.prop'href',函数{ $this.replace/picture=.*?&/,'$1'+imgNew+'

这很简单,我以前也做过,但现在无法让它工作

我需要更改下面href中图像的名称

var href=https://www.facebook.com/sharer/sharer.php?u=http://myurl.com/&description=“tets”和图片=http://myurl.com/img/name-1654-45654.jpg $'.share、.share-2.prop'href',函数{ $this.replace/picture=.*?&/,'$1'+imgNew+'$2'; };
您应该将代码更改为以下代码

  href="https://www.facebook.com/sharer/sharer.php?u=http://myurl.com/&description='tets'&picture=http://myurl.com/img/name-1654-45654.jpg" 

    $('.share, .share-2').prop('href', function () {
        $(this).replace(/\/(?=[^\/]*$)/, '/newpicturename'));
       }); 
最后一个斜杠和后面的单词将替换为新的图片名称

一个例子 var str=http://one/two/three/four; console.logstr.replace/\/?=[^\/]*$/,“/newpicturename” 由于href字符串是一个URL,因此可以利用该对象

var imgNewhttp://example.com/img.png'; var href=https://www.facebook.com/sharer/sharer.php?u=http://myurl.com/&description=“tets”和图片=http://myurl.com/img/name-1654-45654.jpg; var url=newurlhref; searchParams.set'picture',imgNew; console.logurl.href replace函数是字符串的方法,因此不能从$this调用replace,因为它是jQuery对象,而不是字符串

如果需要更改href属性,只需使用this.href=

编辑:当您使用方法时,您应该按照文档建议使用它

$(".some-element").prop('some-prop', function(index, old_value){
    // do something
    return new_value;
});
代码段已更新:

var new_img=http://my.domain.com/img/my_new_image.jpg; var regex_img=/\b图片=[^&]*/ $'.share、.share-2.prop'href',函数索引,旧的{ var new_href=old_href.replaceregex_img,'picture='+new_img; console.lognew_href; 返回新的\u href; };
这也将替换picture=我收到此错误$..replace不是一个函数。不清楚预期的输出应该是什么或imgNew是什么,但是URL对象可能是解决方法。我在下面回答。将函数转换为函数I,old并使用return old。替换…Doc:您的picture参数后也没有&after,这就是为什么示例href与正则表达式不匹配的原因。Fiddle:据我所知,这个问题不是关于如何替换URL,而是关于如何使用jQuery的$..propattribute函数。如果没有完整的代码,很难知道哪个部分失败了。最好在答案中添加这个。由于兼容性问题,我猜它无法工作,但是谢谢你lot@fernandosavio好主意我更新了几个超链接。这并不能解决实际问题,即如何正确使用$.propattribute函数。我建议相应地修改答案。看我对这个问题的评论。实际上他不需要使用$.prop来做他需要的事情。这就是为什么我建议使用这个。href。他的错误是试图使用$this.replace。您不认为实际的问题是更改href中的picture参数吗?我不认为这是关于使用$.prop函数。哇,现在我明白了!我会解决的
$(".some-element").prop('some-prop', function(index, old_value){
    // do something
    return new_value;
});