困惑的字符串替换Javascript

时间:2014-01-15 18:37:14

标签: javascript replace

我的网址字符串格式如下,并希望将html实体&符号&更改为符号&符号&

var $url = "https://www.examplebiz.com/?utm_campaign=campaign&parameter=m&firstname=Jeremiah&email=testemail@gmail.com"

当我尝试使用以下字符串替换时,它不起作用:

$url = $url.replace(/&/g , "&");

但是,这完美地运作了:

$url = $url.replace(/#038;/g , "");

第一种解决方案在js小提琴中运行良好,但在我的网站上却没有。知道是什么原因引起的吗?

编辑:这是原始代码(没有抛出任何错误)

<script type="text/javascript">
jQuery( document ).ready(function($) {
    $( "#GK-Form" ).submit(function() { 
        var $name = $('input#last_name').val();
        var $email = $('input#email').val();
        var $url = 'https://www.examplebiz.com/?utm_campaign=campaign&parameter=m&firstname='+$name+'&email='+$email;
        $url = $url.replace(/&#038;/g , "&");           
        $( "input#ReturnUrl" ).val( $url );
        return true;
    });
});
</script>

请注意,url在生成之前已正确格式化,但随后会变为以下内容。此外,这是在一个WordPress帖子中完成的(不确定是否会产生影响)。

var $url = "https://www.examplebiz.com/?utm_campaign=campaign&#038;parameter=m&#038;firstname=Jeremiah&#038;email=testemail@gmail.com"

1 个答案:

答案 0 :(得分:0)

我使用了JSFiddle这似乎有效。

jQuery(document).ready(function ($) {
    //    $( "#GK-Form" ).submit(function() { 
    var $name = 'lastname'; //$('input#last_name').val();
    var $email = 'email@dom.com'; //    $('input#email').val();
    var $url = 'https://www.examplebiz.com/?utm_campaign=campaign&#038;parameter=m&firstname=' + $name + '&email=' + $email;
    $url = $url.replace(/&#038;/g, "&");

    $("input#ReturnUrl").val($url);
    return true;
    //  });
});