使用@标记带有@和部门的用户

时间:2015-06-29 09:50:06

标签: javascript jquery regex

我正在创建一个标记系统。最棒的圆顶。但是现在发生了一个问题。实际上我想要

  1. 当用户输入@时,下拉列表将显示相同的内容     facebook。
  2. 还有部门。当用户输入#the department list时 将显示
  3. 我完成了第一部分。下面是代码

    $(document).ready(function(){   
    var start2 = /@/ig; // @ Match
        var word2 = /@(\w+)/ig; //@abc Match
    
        $(document).on("keyup", "#mention-text", function() {
            var content2 = $(this).html(); //Content Box Data
            var go = content2.match(start2); //Content Matching @
            var name = content2.match(word2); //Content Matching @abc
            var dataString = 'searchword=' + name;
            //If @ available
            if (go.length > 0) {
                $("#msgbox-dept").slideDown('show');
                $("#display-dept").slideUp('show');
                $("#msgbox-dept").html("Type the name of someone or something...");
                //if @abc avalable
                if (name.length > 0) {
                    $.ajax({
                        type: "POST",
                        url: base_url + '/notes/getusersdept', // Database name search 
                        data: dataString,
                        cache: false,
                        success: function(data) {
                            $("#msgbox-dept").hide();
                            $("#display-dept").html(data).show();
                        }
                    });
                }
            }
            return false;
        });
    
        //Adding result name to content box.
        $(document).on("click", ".addname2", function() {
            var username2 = $(this).attr('title');
            var old2 = $("#mention-text").html();
            var content2 = old2.replace(word2, " "); //replacing @abc to (" ") space
            $("#mention-text").html(content2);
            var E2 = "&nbsp<a class='red mentions' contenteditable='false' href='#' >" + username2 + "</a>&nbsp; ";
            $("#mention-text").append(E2);
            $("#mention-text br").remove();
            $("#display-dept").hide();
            $("#msgbox-dept").hide();
        });
    })
    

    为@工作正常但我想要@和#。我也试过正则表达式

    var start2 = /@|#/ig; // @ Match
    var word2 = /@|#(\w+)/ig; //@abc Match
    

    但直到现在都没有运气。任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

refcount

您可以尝试将其与两者匹配。参见演示。

https://regex101.com/r/yG7zB9/34