【发布时间】:2015-11-26 12:44:32
【问题描述】:
我找到了很多正则表达式示例来从文本中检索主题标签。不幸的是,没有一个例子是我需要的。
这几乎是我需要的,但是......
function hashtags(text) {
return text.replace(/(^|\s)#(\w*[a-zA-Z]+\w{2,50})/g,
"$1<a href='/h/$2' target='_blank'>#$2</a>");
}
主题标签不能以数字开头,以避免出现例如 第 #12 节 被添加主题标签的情况。
上面的例子检查了它,但它不允许像ÁÉÍÚ这样的字符,它没有正确检查主题标签的长度并且它不允许字符'-'。
所以,我需要以下内容:
-
主题标签可以以任何字母开头 - A、z、B、Ñ、ó、Ú 等,但不能以数字和特殊符号 &%$ 或 - _
李> 主题标签的总长度必须为 3-50 个字符。正则表达式必须只接受完整的单词作为主题标签,但不能在前 50 个字符之后将其剪切。因此,必须忽略以# 开头但包含超过 50 个字符的单词,而不是将前 50 个字符转换为主题标签链接。在我的示例中,
{2,50}无法正常工作。主题标签的其余部分(当检查它不是以数字或特殊符号开头时)可能包含数字、任何字母和
_ -符号。\w只允许_而不允许-
有可能吗?
【问题讨论】:
-
您有简单的测试输入吗?
-
我觉得你可以适应this solution。
标签: regex