我有一个变量,其中包含一系列单词的字符串,其中一些单词带有井号,例如:
var words = "#hashtagged no hashtag #antoherhashtag";
我想将每个带有井号的单词保存到一个数组中,类似于:
var tagslistarr = words.split(' ');
但我不确定如何获取既被#包围又被空格包围的字符。
有没有特殊的方法可以做到这一点?是否应该使用某些ASCII字符来标识它们?
我有一个变量,其中包含一系列单词的字符串,其中一些单词带有井号,例如:
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.split(' ');
但我不确定如何获取既被#包围又被空格包围的字符。
有没有特殊的方法可以做到这一点?是否应该使用某些ASCII字符来标识它们?
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.match(/#\S+/g); //["#hashtagged", "#antoherhashtag"]
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
数组中
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 ]);
}
使用纯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
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.match(/(^|\s)#([^ ]*)/g);