How do you map-replace characters in Javascript similar to the 'tr' function in Perl?

后端 未结 9 2048
礼貌的吻别
礼貌的吻别 2020-11-30 01:51

I\'ve been trying to figure out how to map a set of characters in a string to another set similar to the tr function in Perl.

I found this site that sh

9条回答
  •  情深已故
    2020-11-30 02:28

    Method:

    String.prototype.mapReplace = function(map) {
        var regex = [];
        for(var key in map)
            regex.push(key.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"));
        return this.replace(new RegExp(regex.join('|'),"g"),function(word){
            return map[word];
        });
    };
    

    A perfect example:

    var s = "I think Peak rocks!"
    s.mapReplace({"I think":"Actually","rocks":"sucks"})
    // console: "Actually Peak sucks!"
    

提交回复
热议问题