2014-10-30 162 views
0

我想找到所有的單詞以@開頭的Java腳本開始的Javascript:想找到句子中的所有單詞,@

一句:「嘿@dinesh,我在@dean發泄提到你」;

現在使用上面的句子,我想找到以attherate(@)開頭的兩個單詞(dinesh和dean)。爲了更方便,您可以假設任何用戶使用@提及其他用戶的Twitter功能。

如果有任何正則表達式或函數請告訴我

謝謝。

+0

使用捕獲組'@(\ S +)'或'@(\ w +)'。從組索引1獲取名稱。請在詢問這類問題之前進行搜索。 – 2014-10-30 14:52:06

回答

4
var atmentions = "Hey @dinesh, I have mentioned you in @dean vent".match(/@\w+/g) 
// gives ["@dinesh", "@dean"] 

如果你想不 '@' 的用戶名,你就可以將它們轉換這樣

atmentions.map(function(name){ return name.substring(1); }) 
// ["dinesh", "dean"] 
1

你可以這樣做:

function findWords(words) { 
    return words.split(" ").filter(function(word) { 
     if (word.indexOf("@") === 0) return word 
    }); 
} 

var words = findWords("Hey @dinesh, I have mentioned you in @dean vent"); 
console.log(words); //["@dinesh", "@dean"]; 

小提琴:http://jsfiddle.net/7ofxz74f/

+0

這實際上包含了第一場比賽後的逗號。正則表達式的答案更合適,因爲它更容易找到單詞邊界 – 2014-10-30 15:02:50

0

它可以這樣來完成:

var sentence = "Hey @dinesh, I have mentioned you in @dean vent", 
    result = []; 
sentence.split(" ").forEach(function(word) { 
    if(word.indexOf("@") == 0) { 
      result.push(word);   // or result.push(word.substring(1)) to skip @. 
    } 
}); 
console.log(result); //["@dinesh", @dean"]