javascript代码:
如何找到没有换行符或空格或制表符的主题标签而没有 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;
}
}
最佳答案
使用 \b
而不是 \s?
- 一个单词边界而不是额外的空格来不捕获空格。使用 \B
(不是单词边界)将您的 url 主题标签与以单词字符结尾的 url 分开。
所以:
function findHashtags(searchText) {
var regexp = /\B\#\w\w+\b/g
result = searchText.match(regexp);
if (result) {
console.log(result);
} else {
return false;
}
}
这样调用的:
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")
然后返回:
["#ss", "#ddd", "#sfsfsf", "#ggdg", "#hdhhd"]
请注意,如果 url 以除单词字符 (a-z0-9_
) 以外的任何内容结尾,这将失败。除此之外的唯一选择是捕获并更有效地 trim 空白:
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;
}
}
关于javascript - 从带有 trim 空格和新行的字符串中获取主题标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25693456/