Javascript 如何提取帖子中提到的用户?(VUE-NODE)

Javascript 如何提取帖子中提到的用户?(VUE-NODE),javascript,node.js,vue.js,vuejs2,Javascript,Node.js,Vue.js,Vuejs2,我拥有的 创建标题(输入)、正文(输入)和提及用户(输入),3个独立的输入 我想要什么 我想在facebook、twitter等帖子中创建一个提及的功能,你可以在帖子正文中使用@添加要提及的用户(用户仅为数字用户) 我做了什么? 按@键并添加到帖子正文时搜索用户(显示用户bla bla的过程) 输入v-on:keyup.50=“searchUsers()”type=“text” 我需要什么? 我不知道如何提取添加到帖子正文中的@username1@username2,然后将其插入提到的数据库中

我拥有的

  • 创建标题(输入)、正文(输入)和提及用户(输入),3个独立的输入
  • 我想要什么

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

    我做了什么?

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

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

  • 我需要什么?

    我不知道如何提取添加到帖子正文中的@username1@username2,然后将其插入提到的数据库中,最好的方法是什么,可能是:

  • 正则表达式
  • 另一个
  • 使用的技术>Vue和节点


    我们将非常感谢与此相关的任何文章或信息

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

    我用一个例子写了一篇文章

    预览:

    <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>
    

    代码:

    <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>
    
    
    

    提及用户 {{用户}} 导出默认值{ 数据(){ 返回{ 标题:空, 身体:“你好,bla bla bla@jrambo bla bla bla bla@jwick bla bla bla bla@cincarato”, 用户:[] }; }, 方法:{ identificationusers(){ this.referenceUsers=this.body.match(/@\w+/g); } }, 安装的(){ this.identificationUsers() }, 观察:{ 正文(val){ this.identificationUsers() } } };
    我试过了,效果很好,顺便说一下,当我们发出get请求查看帖子时,我可以使用regex创建一个html标记来创建@username clickable?是的,你可以使用regex+replace来实现这个目的,添加一个标记来提及用户:@user有什么例子吗?我真的从来没有试过regex。如果你想了解要点,我可以再问你一个问题,可以吗?是的,我可以给你写一个例子。我会再写一个密码笔。如果可以,请提出另一个问题,完成后我将与您分享该示例。下面是带有替换示例的代码笔: