我有了一系列的話,其中有一些主題標籤,如一串一個變種:通過hashtag分割字符串並保存到jQuery數組中?
var words = "#hashtagged no hashtag #antoherhashtag";
我想每個hashtagged單詞保存到一個數組,有點像:
var tagslistarr = words.split(' ');
但我不確定如何獲得被#和空間包圍的角色。
有沒有特殊的方法來做到這一點?是否有一些ASCII字符可以用來識別?
我有了一系列的話,其中有一些主題標籤,如一串一個變種:通過hashtag分割字符串並保存到jQuery數組中?
var words = "#hashtagged no hashtag #antoherhashtag";
我想每個hashtagged單詞保存到一個數組,有點像:
var tagslistarr = words.split(' ');
但我不確定如何獲得被#和空間包圍的角色。
有沒有特殊的方法來做到這一點?是否有一些ASCII字符可以用來識別?
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.split(' ');
var arr=[];
$.each(tagslistarr,function(i,val){
if(tagslistarr[i].indexOf('#') == 0){
arr.push(tagslistarr[i]);
}
});
console.log(arr);
tagslistarr = words.split(' ')
分割用空格字從一個新的數組通過tagslistarr
數組的每個值
if(tagslistarr[i].indexOf('#') == 0)
檢查是#
是在的開頭如果這個條件是true
它將它添加到arr
陣列
var tmplist = words.split(' ');
var hashlist = [];
var nonhashlist = [];
for(var w in tmplist){
if(tmplist[ w ].indexOf('#') == 0)
hashlist.push(tmplist[ w ]);
else
nonhashlist.push(tmplist[ w ]);
}
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.match(/(^|\s)#([^ ]*)/g);
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.match(/#\S+/g); //["#hashtagged", "#antoherhashtag"]
的正則表達式是用純JavaScript很簡單:
var str = "Lorem #ipsum dolor sit #amet";
var hashArray = (str.match(/#(\w+)/g));
console.log(hashArray);
// => [ '#ipsum', '#amet' ]
console.log(Array.isArray(hashArray));
// => true
如果您需要處理變音符號:
var str = "Loröm #ipsöm dolor sit #amöt";
var hashArray = (str.match(/#([A-zÀ-ÖØ-öø-ÿ]+)/g));
console.log(hashArray);
// => [ '#ipsöm', '#amöt' ]
console.log(Array.isArray(hashArray));
// => true
如果使用變音符號(重音字母),它只顯示那個單詞 - 值得更新 –
@ jeand'arme,謝謝,我已經更新了答案。 – ryanpcmcquen
你可以離開那裏沒有點,不是嗎?只是(/#\ S +/g) –
@koala_dev:你說得對。更新了答案。 – boring
+1這個答案比接受的答案更有效率。 –