Javascript 删除名称周围的字符
我有一个使用JavaScript@提及库的评论表单,它允许我将一些评论文本保存到我的服务器上,就像这样Javascript 删除名称周围的字符,javascript,jquery,Javascript,Jquery,我有一个使用JavaScript@提及库的评论表单,它允许我将一些评论文本保存到我的服务器上,就像这样“这是一条给[Kenneth Auchenberg](用户:53453)和[JasonDavis](用户:1)的消息 当我在页面上显示注释HTML时,我只需要名称,而不需要用户ID'这是给@Kenneth Auchenberg和@JasonDavis'的消息。 我需要转换这个字符串 var commentStr = 'This is a message for @[Kenneth Auchenb
“这是一条给[Kenneth Auchenberg](用户:53453)和[JasonDavis](用户:1)的消息
当我在页面上显示注释HTML时,我只需要名称,而不需要用户ID<代码>'这是给@Kenneth Auchenberg和@JasonDavis'的消息。
我需要转换这个字符串
var commentStr = 'This is a message for @[Kenneth Auchenberg](user:53453) and @[JasonDavis](user:1)';
var cleanCommentStr = 'This is a message for @Kenneth Auchenberg and @JasonDavis';
在这个字符串中
var commentStr = 'This is a message for @[Kenneth Auchenberg](user:53453) and @[JasonDavis](user:1)';
var cleanCommentStr = 'This is a message for @Kenneth Auchenberg and @JasonDavis';
如何使用JavaScript删除名称周围的坏字符
更新 我可能只是采取不同的方法,在我的comments DB表中添加一个新的列,以保存@提到的用户的列表,然后在保存注释文本之前从注释中删除这些内容。我真的只需要在创建注释时使用用户ID,这样我就可以为该用户生成通知。之后,我可以在注释文本中显示用户名。您可以与RegEx一起使用 正则表达式解释:
@[([\w\s]+)\]
:匹配@[
后跟任意字母数字字符、下划线和空格一次或多次,然后再跟]
。括号()
用于将用户名放入第一个捕获的组-$1
[^]+\)
:匹配任何内容直到)
。从而匹配@[blah blah]
后面括号内的字符串g
:全局标志@$1
将用@blah blah
替换@[blah blah](任何东西)
。此处$1
是第一个捕获的组,即方括号内的字符串
演示:
var commentStr='这是一条给[Kenneth Auchenberg](用户:53453)和[JasonDavis](用户:1)的消息;
commentStr=commentStr.replace(/\[([\w\s]+)\][^]+\)/g,“@$1”);
document.body.innerHTML=commentStr代码>@KenY-N我很高兴你指出了降价的联系,因为我甚至没有注意到!由于我的评论支持降价,我可以简单地保持原样,用户名将显示为一个链接,甚至更好,谢谢!很不错的!我仍在试图决定是否要将评论保存到DB,是否附加id。这将打开保存它的可能性。谢谢。你有什么想法吗?@JasonDavis我认为处理过的字符串应该保存在DB中,除非你正在使用的库提供了任何工具来使用括号中的用户ID和用户名。评论中的用户让我在上面看到,它基本上只是一个标记链接…因为我的评论支持标记,它使用户名显示为链接名,我甚至没有意识到,所以我可能会保持原样。感谢您的代码,尽管这是一个很好的示例,并且肯定会很有用