RegEx for Javascript获取子字符串

时间:2012-11-30 00:34:15

标签: javascript regex

我想解析一些我从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>");
}

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

2 个答案:

答案 0 :(得分:2)

我认为你有点努力;)。首先,锚点^$标记字符串的开头和结尾(不是匹配的开头和结尾或者其他东西 - 我想你假设)。然后你使用$1,但这对应于第一次捕获(第一组括号 - 你没有)。在匹配项周围添加括号或使用$&。最后,\S表示非空白字符。那么为什么不尽可能匹配尽可能多的非空白字符?

exp = /@(\S*)/g;
return text.replace(exp, "<a href='https://twitter.com/$1'>@$1</a>");

答案 1 :(得分:1)

试试这个:

text.replace(/\@(\w+)/g,"<a href='https://twitter.com/$1'>@$1</a>");