0

あなたの助けが必要です。

以下の関数には複数の一致が含まれるため、この例では大幅に短縮しています。ここにいる正規表現の人々への私の質問は、ある種の特別な正規表現を使用して一致のリストを短縮する方法はありますか?

以下の関数がチェックしているいくつかの一致を次に示します。

BRIEFING NOTE TO BOSS1
BRIEFING NOTE TO BOSS2
BRIEFING NOTE TO BOSS3
KEY MESSAGES
MEDIA ADVISORY
MEDIA CALL

これがJavaScriptです:

function shorten_name(val)
    if (val.match("BRIEFING")) { return "BN" }
    else if (val.match("KEY MESSAGES")) { return "KM" }
    else if (val.match("MEDIA ADVISORY")) { return "MA" }
    else if (val.match("MEDIA CALL")) { return "MC" }
}
4

1 に答える 1

1
function (str){ 
    var map = {
        "BRIEFING": "BN",
        "KEY MESSAGES": "KM",
        "MEDIA ADVISORY": "MA",
        "MEDIA CALL": "MC"
    };

    for (key in map){ 
        if (map.hasOwnProperty(key)){
            str = str.replace(new RegExp(key, 'g'), map[key]); 
        }
    } 

   return str; 
}

http://jsfiddle.net/ZqX6T/

于 2013-11-04T20:16:51.753 に答える