我有一个var,其中包含一系列单词的字符串,其中一些包含主题标签,例如:
var words = "#hashtagged no hashtag #antoherhashtag";
我想将每个hashtagged word保存到一个数组中,有点像:
var tagslistarr = words.split(' ');
但我不确定如何让#和空格包围的角色。
有没有一种特殊的方法呢?是否有一些我想用来识别这个字符的ASCII字符?
答案 0 :(得分:22)
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.match(/#\S+/g); //["#hashtagged", "#antoherhashtag"]
答案 1 :(得分:13)
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(' ')
将带有空格的单词与新数组分开
$.each()遍历tagslistarr
数组
if(tagslistarr[i].indexOf('#') == 0)
检查#
是否在true
的开头,如果此条件为arr
,则会将其添加到{{1}}数组
答案 2 :(得分:2)
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 ]);
}
答案 3 :(得分:1)
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.match(/(^|\s)#([^ ]*)/g);
答案 4 :(得分:1)
使用纯JavaScript,正则表达式非常简单:
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
如果你需要处理变音符号:
Array
(
[0] => "update siteconfig set siteadi=:siteadial,slogan=:sitebaslik,description=:acikla,hakkinda=:hakkindalani,copright=:telif,logo=:favicon"
[1] => "siteadial"=>"Acilsağlık.Net","sitebaslik"=>"Sağlık Hesaplama Araçlarıaa","acikla"=>"","hakkindalani"=>"","telif"=>"Tüm hakları saklıdır ","favicon"=>""
)