Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用hashtag拆分字符串并用jQuery保存到数组中?_Javascript_Jquery_Arrays_String - Fatal编程技术网

Javascript 用hashtag拆分字符串并用jQuery保存到数组中?

Javascript 用hashtag拆分字符串并用jQuery保存到数组中?,javascript,jquery,arrays,string,Javascript,Jquery,Arrays,String,我有一个var,它有一个字符串和一系列单词,其中一些有hashtag,例如: var words = "#hashtagged no hashtag #antoherhashtag"; 我想将每个hashtaged单词保存到一个数组中,类似于: var tagslistarr = words.split(' '); 但我不确定如何让角色同时被#和空间包围 有什么特别的方法吗?是否有一些ASCII字符可用于标识此项? tagslistar=words.split(“”)使用空格从新数组中拆分单

我有一个var,它有一个字符串和一系列单词,其中一些有hashtag,例如:

var words = "#hashtagged no hashtag #antoherhashtag";
我想将每个hashtaged单词保存到一个数组中,类似于:

var tagslistarr = words.split(' ');
但我不确定如何让角色同时被#和空间包围

有什么特别的方法吗?是否有一些ASCII字符可用于标识此项?

tagslistar=words.split(“”)
使用空格从新数组中拆分单词

循环遍历
tagslistarr
数组的每个值

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 ]);
}

if(tagslistar[i].indexOf('#')==0)
检查的是
在的开头,如果该条件为
true
则将其添加到
arr

数组中,正则表达式对于纯JavaScript非常简单:

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 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

你可以不带圆点就走了,是吗?只是(/#\S+/g)+1这个答案比公认的答案有效得多。如果使用变音符号(重音字母),它只会显示这个单词值得更新
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