【问题标题】:How to extract users mentioned in a post? (VUE-NODE)如何提取帖子中提到的用户? (VUE-节点)
【发布时间】:2020-07-04 13:57:29
【问题描述】:

我有什么

  1. 创建标题(输入)、正文(输入)和提及用户(输入),3 个单独的输入

我想要什么

我想为 facebook、twitter 等帖子创建提及的功能,在正文中您可以使用 @ 添加要提及的用户(用户仅限字母数字

我做了什么?

  1. 按@键搜索用户并添加到帖子正文(显示用户bla bla的过程)

    输入 v-on:keyup.50="searchUsers()" type="text"

我需要什么?

我不知道如何提取 @username1 @username2 添加到帖子正文以便稍后将其插入到提到的数据库中的最佳方法是:

  1. 正则表达式?
  2. 另一个??

使用的技术 > Vue 和 Node

任何与此相关的文章或信息将不胜感激

【问题讨论】:

    标签: javascript node.js vue.js vuejs2


    【解决方案1】:

    我认为正则表达式是一个很好的解决方案。

    我写了一个codepen的例子

    预览:

    代码:

    <template>
      <div id="app">
        <input type="text" 
               v-model="title" 
               placeholder="title" 
        />
        <br><br>
        <textarea rows="20" 
                  cols="30"
                  v-model="body"
        ></textarea>
        
        <div>
          <h3>Mention users </h3>
          {{mentionUsers}}
        </div>
    
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          title: null,
          body: "Hello, bla bla bla @jrambo bla bla bla @jwick bla bla bla @cincarnato",
          mentionUsers: []
        };
      },
      methods: {
        identifyMentionUsers() {
          this.mentionUsers = this.body.match(/@\w+/g);
        }
      },
      mounted(){
        this.identifyMentionUsers()
      },
      watch: {
        body(val){
          this.identifyMentionUsers()
        }
      }
    };
    </script>
    

    【讨论】:

    • 我试过了,效果很好,顺便说一句,当我们发出 get 请求来查看帖子时,我可以使用正则表达式创建一个 html 标签来创建 @username 可点击?
    • 是的,您可以为此使用正则表达式 + 替换,添加标签 a 来提及用户: @user
    • 有什么例子吗?我真的从来没有尝试过正则表达式。如果你想要积分,我可以再问一个问题,你可以吗?
    • 是的,我可以给你写一个例子。我会写另一个codepen。如果可以,请提出另一个问题,我将在完成后与您分享示例。
    • 这里是带有替换示例的代码笔:codepen.io/cincarnato/pen/wvMyzEx
    猜你喜欢
    • 1970-01-01
    • 2020-11-20
    • 2011-05-30
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    相关资源
    最近更新 更多