在javascript中对字符串进行多次替换

在javascript中对字符串进行多次替换,javascript,jquery,Javascript,Jquery,我正在尝试使用javascript对字符串(php变量)进行多次替换。 此代码: <script> jQuery(document).ready(function() { var map = { "2014": "", "2015": "", "2016": "", "-": " ", "ú": "u" }; var str = "<?php echo $data; ?>"; var result = str.replace(/[

我正在尝试使用javascript对字符串(php变量)进行多次替换。 此代码:

<script>
jQuery(document).ready(function() {
var map = {
    "2014": "",
    "2015": "",
    "2016": "",
    "-": " ",
    "ú": "u"
};

var str = "<?php echo $data; ?>";
var result = str.replace(/[<?php echo $data; ?>]/g, function(m) {
    return replacements[m];
});
jQuery('.even_data').html(result);
});
</script>
另一种选择是使用:

jQuery(document).ready(function() {
  var str = "<?php echo $data; ?>";
  var result = str.replace('2014','');
  jQuery('.even_data').html(result);
});
jQuery(文档).ready(函数(){
var str=“”;
var结果=str.replace('2014','');
jQuery('.even_data').html(结果);
});
但是你怎么能做多次替换呢

谢谢


我尝试了这些答案,但都不起作用:

在Javascript正则表达式中,方括号[]是定义的特殊字符。如果要将它们用作文字,则必须对其进行转义:

str.replace(/\[2014-08-28\]/g, function(m) {

在Javascript正则表达式中,方括号[]是用于定义的特殊字符。如果要将它们用作文字,则必须对其进行转义:

str.replace(/\[2014-08-28\]/g, function(m) {

在Javascript正则表达式中,方括号[]是用于定义的特殊字符。如果要将它们用作文字,则必须对其进行转义:

str.replace(/\[2014-08-28\]/g, function(m) {

在Javascript正则表达式中,方括号[]是用于定义的特殊字符。如果要将它们用作文字,则必须对其进行转义:

str.replace(/\[2014-08-28\]/g, function(m) {

让PHP来做这件事比JavaScript容易得多

$map = array(
    "2014" => "",
    "2015" => "",
    "2016" => "",
    "-" => " ",
    "ú" => "u"
);

$data = '2014-08-28';
$data = str_replace(array_keys($map), array_values($map), $data);

让PHP来做这件事比JavaScript容易得多

$map = array(
    "2014" => "",
    "2015" => "",
    "2016" => "",
    "-" => " ",
    "ú" => "u"
);

$data = '2014-08-28';
$data = str_replace(array_keys($map), array_values($map), $data);

让PHP来做这件事比JavaScript容易得多

$map = array(
    "2014" => "",
    "2015" => "",
    "2016" => "",
    "-" => " ",
    "ú" => "u"
);

$data = '2014-08-28';
$data = str_replace(array_keys($map), array_values($map), $data);

让PHP来做这件事比JavaScript容易得多

$map = array(
    "2014" => "",
    "2015" => "",
    "2016" => "",
    "-" => " ",
    "ú" => "u"
);

$data = '2014-08-28';
$data = str_replace(array_keys($map), array_values($map), $data);
你可以用

function multiReplace(str, map) {
    for(var i in map) if(map.hasOwnProperty(i)) {
        str = str.replace(
            new RegExp(i.replace(/[.^$*+?()[{\\|]/g, '\\$&'), 'g'),
            map[i]
        );
    }
    return str;
}
var result = multiReplace(str, map);
它的工作原理如下:

  • 它迭代
    map
  • 它为每个属性构建一个适当的正则表达式
  • 首先,它转义:
    ^$*+?()[{\|
  • 然后它使用该字符串构建一个全局(
    g
    flag)正则表达式
  • 它用
    map
  • 你可以用

    function multiReplace(str, map) {
        for(var i in map) if(map.hasOwnProperty(i)) {
            str = str.replace(
                new RegExp(i.replace(/[.^$*+?()[{\\|]/g, '\\$&'), 'g'),
                map[i]
            );
        }
        return str;
    }
    var result = multiReplace(str, map);
    
    它的工作原理如下:

  • 它迭代
    map
  • 它为每个属性构建一个适当的正则表达式
  • 首先,它转义:
    ^$*+?()[{\|
  • 然后它使用该字符串构建一个全局(
    g
    flag)正则表达式
  • 它用
    map
  • 你可以用

    function multiReplace(str, map) {
        for(var i in map) if(map.hasOwnProperty(i)) {
            str = str.replace(
                new RegExp(i.replace(/[.^$*+?()[{\\|]/g, '\\$&'), 'g'),
                map[i]
            );
        }
        return str;
    }
    var result = multiReplace(str, map);
    
    它的工作原理如下:

  • 它迭代
    map
  • 它为每个属性构建一个适当的正则表达式
  • 首先,它转义:
    ^$*+?()[{\|
  • 然后它使用该字符串构建一个全局(
    g
    flag)正则表达式
  • 它用
    map
  • 你可以用

    function multiReplace(str, map) {
        for(var i in map) if(map.hasOwnProperty(i)) {
            str = str.replace(
                new RegExp(i.replace(/[.^$*+?()[{\\|]/g, '\\$&'), 'g'),
                map[i]
            );
        }
        return str;
    }
    var result = multiReplace(str, map);
    
    它的工作原理如下:

  • 它迭代
    map
  • 它为每个属性构建一个适当的正则表达式
  • 首先,它转义:
    ^$*+?()[{\|
  • 然后它使用该字符串构建一个全局(
    g
    flag)正则表达式
  • 它用
    map
  • 您的正则表达式不好。用实际的
    RE
    替换后,它应该可以工作:

        var result = str.replace(/(\d{4}|-|ú)/g, function(m) {
            return map[m];
        });
    

    您的正则表达式不好。用实际的
    RE
    替换后,它应该可以工作:

        var result = str.replace(/(\d{4}|-|ú)/g, function(m) {
            return map[m];
        });
    

    您的正则表达式不好。用实际的
    RE
    替换后,它应该可以工作:

        var result = str.replace(/(\d{4}|-|ú)/g, function(m) {
            return map[m];
        });
    

    您的正则表达式不好。用实际的
    RE
    替换后,它应该可以工作:

        var result = str.replace(/(\d{4}|-|ú)/g, function(m) {
            return map[m];
        });
    

    使用JS,它将是这样的smth:

    var str = "2014 12 03, 2014, day";
    var map = {"2014" : "2012", 
           "12" : "a",
           "03" : "",
           "day" : "sfsdf"};
    $.each(map, function(key, value) {
        str = str.replace(new RegExp(key ,"g"), value);
    });
    

    //新的str:“2012年a,2012年,sfsdf”

    使用JS它会是这样的:

    var str = "2014 12 03, 2014, day";
    var map = {"2014" : "2012", 
           "12" : "a",
           "03" : "",
           "day" : "sfsdf"};
    $.each(map, function(key, value) {
        str = str.replace(new RegExp(key ,"g"), value);
    });
    

    //新的str:“2012年a,2012年,sfsdf”

    使用JS它会是这样的:

    var str = "2014 12 03, 2014, day";
    var map = {"2014" : "2012", 
           "12" : "a",
           "03" : "",
           "day" : "sfsdf"};
    $.each(map, function(key, value) {
        str = str.replace(new RegExp(key ,"g"), value);
    });
    

    //新的str:“2012年a,2012年,sfsdf”

    使用JS它会是这样的:

    var str = "2014 12 03, 2014, day";
    var map = {"2014" : "2012", 
           "12" : "a",
           "03" : "",
           "day" : "sfsdf"};
    $.each(map, function(key, value) {
        str = str.replace(new RegExp(key ,"g"), value);
    });
    


    //新str:“2012年a、2012年sfsdf”

    为什么PHP不能进行这些替换?为什么JavaScript必须这样做?@RocketHazmat我也可以使用PHP,我认为使用JS会更容易什么是
    替换
    ?它的定义在哪里?@user3558931:我只是假设
    替换
    应该是
    映射
    。我也这么想,但很想从hors那里听到它如果你知道我的意思的话。为什么PHP不能进行这些替换?为什么JavaScript必须这样做?@RocketHazmat我也可以使用PHP,我想用JS会更容易什么是
    替换
    ?它是在哪里定义的?@user3558931:我只是假设
    替换
    应该是
    映射
    。我也这么想,但我会如果你知道我的意思,我很想从马嘴里听到。为什么PHP不能进行这些替换?为什么JavaScript必须这样做?@RocketHazmat我也可以使用PHP,我想使用JS会更容易什么是
    替换
    ?它是在哪里定义的?@user3558931:我只是假设
    替换
    应该是
    映射
    。我也这么想,但如果你知道我的意思,我很想从马口中听到。为什么PHP不能进行这些替换?为什么JavaScript必须这样做?@RocketHazmat我也可以使用PHP,我想使用JS会更容易什么是
    替换
    ?它在哪里定义?@user3558931:我只是假设
    替换
    >本来应该是
    map
    。我也这么想,但如果你知道我的意思的话,我很想从马嘴里听到。