Javascript 如何提取此类数据并将其放入一个漂亮的数组中?

Javascript 如何提取此类数据并将其放入一个漂亮的数组中?,javascript,regex,arrays,Javascript,Regex,Arrays,我有一根像这样的绳子: var tweet ="@fadil good:))RT @finnyajja: what a nice day RT @fadielfirsta: how are you? @finnyajja yay"; 什么样的代码可以提取带有@character的单词,并删除单词末尾的特殊字符?所以它将是这样一个数组: (@fadil, @finnyajja, @fadielfirsta, @finnyajja); 我尝试了以下代码: var users = $.grep(t

我有一根像这样的绳子:

var tweet ="@fadil good:))RT @finnyajja: what a nice day RT @fadielfirsta: how are you? @finnyajja yay";
什么样的代码可以提取带有@character的单词,并删除单词末尾的特殊字符?所以它将是这样一个数组:

(@fadil, @finnyajja, @fadielfirsta, @finnyajja);
我尝试了以下代码:

var users = $.grep(tweet.split(" "), function(a){return /^@/.test(a)});
它返回以下内容:

(@fadil, @finnyajja:, @fadielfirsta:, @finnyajja)

在某些单词的末尾仍然有冒号“:”字符。我该怎么办?伙计们,有什么解决办法吗?谢谢

在不过度更改当前代码的情况下,最简单的方法是在调用split之前删除所有冒号:

var users = $.grep(tweet_text.replace(":","").split(" "), function(a){return /^@/.test(a)});
您还可以使用
match
编写一个正则表达式来完成所有工作。大概是这样的:

var regex = /@[a-z0-9]+/gi;
var matches = tweet.match(regex);
这假设您只需要字母和数字,如果允许使用某些其他字符,则需要修改此正则表达式


在不过度更改当前代码的情况下,最简单的方法是在调用split之前删除所有冒号:

var users = $.grep(tweet_text.replace(":","").split(" "), function(a){return /^@/.test(a)});
您还可以使用
match
编写一个正则表达式来完成所有工作。大概是这样的:

var regex = /@[a-z0-9]+/gi;
var matches = tweet.match(regex);
这假设您只需要字母和数字,如果允许使用某些其他字符,则需要修改此正则表达式


以下是比尝试使用拆分更简单的代码:

var tweet_text ="@fadil good:))RT @finnyajja: what a nice day RT @fadielfirsta: how are you? @finnyajja yay";

var result = tweet_text.match(/@\w+/g);

下面是比尝试使用拆分更简单的代码:

var tweet_text ="@fadil good:))RT @finnyajja: what a nice day RT @fadielfirsta: how are you? @finnyajja yay";

var result = tweet_text.match(/@\w+/g);

哇!它非常有效!谢谢:-)。这个正则表达式对我来说很难。但你只是让它看起来很简单。如果你不介意的话,还有一个问题。我应该使用什么正则表达式来匹配字符串中以“http://”开头的任何单词。正如你所猜测的,我试图在字符串中找到任何URL。谢谢:-)哇。它非常有效!谢谢:-)。这个正则表达式对我来说很难。但你只是让它看起来很简单。如果你不介意的话,还有一个问题。我应该使用什么正则表达式来匹配字符串中以“http://”开头的任何单词。正如你所猜测的,我试图在字符串中找到任何URL。谢谢:-)