Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除名称周围的字符_Javascript_Jquery - Fatal编程技术网

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

我有一个使用JavaScript@提及库的评论表单,它允许我将一些评论文本保存到我的服务器上,就像这样
“这是一条给[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和用户名。评论中的用户让我在上面看到,它基本上只是一个标记链接…因为我的评论支持标记,它使用户名显示为链接名,我甚至没有意识到,所以我可能会保持原样。感谢您的代码,尽管这是一个很好的示例,并且肯定会很有用