我需要一个javascript正则表达式来获取所有以#开头的单词!然后是任意数量的alpha-numerics 例如,如果我有像
这样的文字!google I don't like you I prefer !bi3g or !yahoo
我需要定期返回(“!google”,“!bi3g”,“!yahoo”)
我有这个常规表达/\![a-z0-9 &-_] /gi
,如果单词后面没有\n
或者不是文本的结尾,那么它将完美地工作,所以将它应用到之前的文本它不会返回“!yahoo”
我知道使用\b\b
将返回所有单词,包括\n
后面的单词,文本中的最后一个单词可以帮助我设置正则表达式以返回所有单词使用\n
包含\b\b
以及文本中的最后一个字词。
答案 0 :(得分: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 Edition 5的一项功能;如果您需要支持IE< = 8,还有其他方法可以删除!
。