2013-11-04 109 views
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" } 
} 
+0

什么是你想要的输出?像“BN TO BOSS1”,“BN TO BOSS2”等等? –

+0

现在你有2个问题。 – Gabriel

回答

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/