javascript - 从带有 trim 空格和新行的字符串中获取主题标签

标签 javascript regex hashtag

textarea text and result console log

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/

相关文章:

javascript - 简单的 JS if 语句不起作用

javascript - 烛台始终位于组合图表谷歌图表中的线条之上

javascript - 如何允许点击通过 div 但仍然对悬停使用react?

使用模式和匹配器的 Java 正则表达式

javascript - JS页面根据URL显示

java - 标签独特性

javascript - Bootstrap 切换按钮折叠 Flot 饼图

php - 用于在 PHP 中将下划线转换为破折号的正则表达式

java - 用于在 char 'x' 之前选择最多 char before char 'y' 的正则表达式

Jquery 代码可以工作,但必须有一种方法来精简它