2012-07-30 20 views
0

我需要一个JavaScript正则表达式来获取所有以字开头的单词!再后面是任意数量的字母数字 例如,如果我有一个像正则表达式到一个确切pettern一个字

!google I don't like you I prefer !bi3g or !yahoo 

我需要经常返回(!“谷歌”,“!bi3g”,“!雅虎”)文本 我有这样的正规表示/\![a-z0-9 &-_] /gi将在单词后面没有\n或者不是文本结束的情况下很好地工作,所以把它应用到以前的文本不会返回!“雅虎”

我知道使用\b\b会返回所有单词,其中包括\n之后的所有单词,最后一个单词可以帮助我如何设置常规exp ression返回所有词包含由\n和文中的最后一个词使用\b\b

回答

2
var str = "!google I don't like you I prefer !bi3g or !yahoo", 
    words = str.match(/![^\s]+/g); //["!google", "!bi3g", "!yahoo"]; 

还去除!迹象可以运行

words = words.map(function(val) { return val.substr(1); }); 

(注意,map()是ECMAScript的第5版的功能;如果你需要对IE <支持= 8在移除其他方式!)。