2012-04-21 77 views

回答

5

提取使用的東西string.match

var str = "I took a #lovely trip to the #zoo today. We had a #wonderful time" 
str.match(/#\w+/g); // #lovely,#zoo,#wonderful 

可能要調整正則表達式,包括根據您的需求數字和符號。

/#[\w\d]+/g用於字母和數字,/#\S+/g用於任何非空白的東西。

編輯:我會補充說g在最後意味着它會找到所有匹配,而不僅僅是第一個。

2

有正則表達式的答案。然後,有split答案。以下作品:

var s = 'I took a #lovely trip to the #zoo today. We had a #wonderful time.' 
var tags = s.split('#').map(function (str) { 
    return str.split(' ')[ 0 ] 
}) 

// Now, tags[0] is not good, so let's splice it 
tags.splice(0, 1) 

console.log(tags) // ['lovely', 'zoo', 'wonderful'] 

所以,是的,它比正則表達式解決方案稍微冗長些。我覺得它更優雅。

PS:你猜對了,我不喜歡正則表達式!

+2

你真的發現這個混亂比四字符正則表達式更優雅嗎? – 2012-04-21 21:47:42

+0

我不喜歡正則表達式._。我不認爲這是一團糟。 – 2012-04-21 21:51:44

+1

那麼,我喜歡正則表達式,當他們是手頭工作的正確工具時,這就是這樣一個時間。 – 2012-04-21 21:56:03