使用正则表达式来缩短值

时间:2013-11-04 20:06:45

标签: javascript regex

我需要你的帮助。

我下面的函数将包含多个匹配项,因此对于此示例,我已经大大缩短了它。我对这里的正则表达式人员的问题是,有没有办法使用某种特殊的正则表达式来缩短匹配列表?

以下是以下函数正在检查的一些匹配项:

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" }
}

1 个答案:

答案 0 :(得分: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/