Ahm*_*thi 1 javascript regex hashtag

如何在没有换行符或空格或标签的情况下找到没有url标签的主题标签?
function findHashtags(searchText) {
var regexp = /\#\w\w+\s?/g
result = searchText.match(regexp);
if (result) {
result.map(function(s) { return s.trim() });
console.log(result);
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
Fra*_*Man 11
使用\b而不是\s?- 字边界而不是额外的空格来捕获空格.使用\B(不是单词边界)将您的url主题标签与以单词字符结尾的网址分开.
所以:
function findHashtags(searchText) {
var regexp = /\B\#\w\w+\b/g
result = searchText.match(regexp);
if (result) {
console.log(result);
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
这样调用的是:
findHashtags("http://www.masrawy.com/Sports/Sports_News/details/2014/9/5/338281#HPOFEATURE\n#ss\nddd\n#ddd jaaja ksks #sfsfsf\n#ggdg#hdhhd")
Run Code Online (Sandbox Code Playgroud)
然后返回:
["#ss", "#ddd", "#sfsfsf", "#ggdg", "#hdhhd"]
Run Code Online (Sandbox Code Playgroud)
请注意,如果url以字符(a-z0-9_)结尾,则会失败.除此之外唯一的选择是捕获并更有效地修剪空白:
function findHashtags(searchText) {
var regexp = /(\s|^)\#\w\w+\b/gm
result = searchText.match(regexp);
if (result) {
result = result.map(function(s){ return s.trim();});
console.log(result);
return result;
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您只关心可读性,请执行以下操作:
yourText.split(' ').filter(v=> v.startsWith('#'))
Run Code Online (Sandbox Code Playgroud)