按标签拆分字符串并使用jQuery保存到数组中?

Posted

技术标签:

【中文标题】按标签拆分字符串并使用jQuery保存到数组中?【英文标题】:Split string by hashtag and save into array with jQuery? 【发布时间】:2013-08-18 13:28:33 【问题描述】:

我有一个 var,它有一个包含一系列单词的字符串,其中一些带有标签,例如:

var words = "#hashtagged no hashtag #antoherhashtag";

我想将每个带标签的单词保存到一个数组中,有点像:

var tagslistarr = words.split(' ');

但我不确定如何让# 和空格包围的字符。

有没有一种特殊的方法可以做到这一点?我打算用一些 ASCII 字符来识别它吗?

【问题讨论】:

【参考方案1】:
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.match(/#\S+/g);   //["#hashtagged", "#antoherhashtag"]

【讨论】:

你可以在没有点的情况下逃脱,不是吗?只是 (/#\S+/g) +1 这个答案比公认的答案更有效率。【参考方案2】:

DEMO

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 数组中

【讨论】:

【参考方案3】:
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 ]);

【讨论】:

【参考方案4】:
var words = "#hashtagged no hashtag #antoherhashtag";
var tagslistarr = words.match(/(^|\s)#([^ ]*)/g);

【讨论】:

【参考方案5】:

使用纯 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

https://repl.it/C8GJ

如果你需要处理变音符号:

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

https://repl.it/@ryanpcmcquen/QuickwittedParallelLemming

【讨论】:

如果使用变音符号(重音字母),它只会显示那个词 - 值得更新

以上是关于按标签拆分字符串并使用jQuery保存到数组中?的主要内容,如果未能解决你的问题,请参考以下文章

DELPHI如何读取一个图片,保存到字节数组中

如何拆分具有字符串和双精度的输入文本文件?

按字符拆分字符串

VB如何读取一个图片,保存到字节数组中

python 怎么读取网络zip字节流,并保存到本地zip文件中?

将多个整数保存到数组并在标签中显示总值