javascript - Javascript 的正则表达式获取子字符串

标签 javascript regex

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

采用推文纯文本:“@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>");
}

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

最佳答案

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

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

关于javascript - Javascript 的正则表达式获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13637275/

相关文章:

regex - 人工智能 : What kind of process would sites like Wit use to train Natural language

java - [++]*+ 在正则表达式中代表什么

php - AJAX 表单提交错误

javascript - AngularJS 与 ui-router : Changing value of a parent dependency of from child's controller

javascript - 使用 PHP 和 jQuery 上传图像时声明新的 formData()

regex - Powershell : using -split "\s+" as opposed to . 拆分 "\s+"

regex - 从字符捕获到第一个句点的正则表达式

Java - 强制文本字段格式 - UX - 00 :00:00;00

在 Struts2 中使用 JSON RPC 时从未调用过 Java 方法

javascript - AngularJS - 表单验证(仅具有 "required"规则的字段除外)