0

我想解析一些从 Twitter API 获得的纯文本。我需要做的基本上是在推文中搜索以找到“@”字符后跟一些文本,然后用链接到该文本的锚点替换纯文本。例如:

获取推文纯文本:“@flintzke 这是一个测试”

并使用正则表达式将其转换为:

<a href='www.twitter.com/flintzke'>@flintzke</a> this is a test

我的猜测是使用这种功能:

function getUsernameLink(text) {
var exp = /^[@][a-zA-Z0-9_!@#%&*]*[\s]$/ig;
return text.replace(exp, "<a href='https://twitter.com/$1'>$1</a>");
}

我的目标是找到一个表达式,该表达式在字符串文本中找到一个单词,该单词以“@”开头并以空格结尾

4

2 回答 2

2

我认为您已经尝试了一些努力;)。首先是锚点^$标记字符串的开始和结束(不是匹配的开始和结束或其他东西 - 我想你假设)。然后你使用$1但对应于第一个捕获(第一组括号 - 你没有)。在匹配项周围添加括号或使用$&. 最后,\S代表一个非空白字符。那么为什么不尽可能多地匹配非空白字符呢?

exp = /@(\S*)/g;
return text.replace(exp, "<a href='https://twitter.com/$1'>@$1</a>");
于 2012-11-30T00:39:10.177 回答
1

试试这个:

text.replace(/\@(\w+)/g,"<a href='https://twitter.com/$1'>@$1</a>");
于 2012-11-30T00:54:13.433 回答