2012-07-03 50 views
1
filter: function(t){ return /^@\w+/.test(t.tweet_raw_text); }, 

如果此JS返回以@符號開頭的推文,如何返回帶有特定哈希標記或單詞的推文?如何使用此JavaScript返回帶有特定哈希標記的推文?

我所嘗試的一切只是打破它!它源於這個JS:

http://tweet.seaofclouds.com/

+0

如果你想快速的幫助,在這樣做youself,使人們可以幫你解決這個問題發表您的最好的嘗試。 – Mat

+0

*「我嘗試的所有東西都會打破它!」*您嘗試了什麼?你必須測試標籤是否在文本中,這是非常簡單的,並且已經在這裏提出:http://stackoverflow.com/questions/7639650/determining-whether-a-string-has-a-substringword –

+0

很明顯,這部分在這裏,但無法找出正則表達式:/^@ \ w –

回答

0

感謝您的上述答覆 - 在reg表達式中一個很好的教訓。

我也得到了全面這段代碼的問題:

filter: function(t){ if (t.tweet_raw_text.indexOf("#EF1") !== -1; }, 
2

首先,讓我們打破你要看看它是如何工作的正則表達式。

/^@\w+/ - 開頭和結尾的斜線(/)只是分隔符,告訴JavaScript這是一個正則表達式。

^ - 匹配字符串的開頭。
@ - 匹配文字@符號。
\w - 匹配任何字母數字字符,包括下劃線([a-zA-Z0-9_]的簡寫)。
+ - 是{1,}的簡稱。匹配前一個字符或表達式(\w)一次或多次。

這就是你如何匹配以@符號開頭的推文。要匹配包含特定主題標籤的推文,您可以將上述正則表達式替換爲您嘗試匹配的特定主題標籤。

例如,/#StackOverflow/.test(t.tweet_raw_text);將匹配包含確切#標籤#StackOverflow的推文。儘管如此,這是一個區分大小寫的模式,因此它不符合標籤#stackoverflow。要使JavaScript正則表達式不區分大小寫,只需在關閉分隔符之後添加i修飾符,如下所示:/#StackOverflow/i