如果我有一个字符串
var comment = "Mmmm #yummy #donut at #CZ"
如何获取字符串变量中存在的哈希标记列表?
我尝试使用JavaScript split()方法,但我必须继续拆分从初始拆分字符串创建的所有字符串 . 有更简单的方法吗?
这将用于任何带字母字符的内容,如果需要,可以扩展其他字符的正则表达式:
myString.match(/#[a-z]+/gi);
只需使用正则表达式来查找哈希后跟非空白字符的出现 .
"Mmmm #yummy #donut at #CZ".match(/#\w+/g) // evaluates to ["#yummy", "#donut", "#CZ"]
您是否关心Unicode或非英语主题标签?
"Mmmm #yummy #donut at #CZ #中文 #.dou #。#?#♥️ #にほ".match(/#[\p{L}]+/ugi) => (5) ["#yummy", "#donut", "#CZ", "#中文", "#にほ"]
正如这个答案所解释的那样:https://stackoverflow.com/a/35112226/515585
\ p 匹配PCRE_UTF8修饰符的unicode字符,此修饰符打开与Perl不兼容的PCRE的其他功能 .
如果你关心可读性:
yourText.split(' ').filter(v=> v.startsWith('#'))
将返回 ["#yummy", "#donut", "#CZ"]
["#yummy", "#donut", "#CZ"]
4 回答
这将用于任何带字母字符的内容,如果需要,可以扩展其他字符的正则表达式:
只需使用正则表达式来查找哈希后跟非空白字符的出现 .
您是否关心Unicode或非英语主题标签?
正如这个答案所解释的那样:https://stackoverflow.com/a/35112226/515585
如果你关心可读性:
将返回
["#yummy", "#donut", "#CZ"]