正则表达式,用于查找字符串的所有出现项,然后查找其后面的下一个空格


$("#idofreplybox").on('keyup, keydown',function(){
    var e = $(this).html();
    if (e.indexOf(@) !== -1){}else{
        var d = find all occurences of @
        var f = find the next whitespace after that @
        change the text between var d and var f to blue
    }
});

使用此代码,当有人键入 @steve 时,他们的名字应该变成蓝色。但是,我不确定我需要将代码块中的文本更改为 javascript 代码的正则表达式。

对不起,如果这对你来说似乎很明显,但我是一个正则表达式菜鸟,所以我无法弄清楚我需要写什么。

任何帮助将不胜感激。

使用 b 表示单词边界。

例如:

"test @username bla bla".replace(/@(w+)b/g, "<span class=user>$1</span>")

"test <span class=user>username</span> bla bla"

使用 @dystroy 的正则表达式:

    (function($){
$("#idofreplybox").keyup(function(){
    var e = $(this).html();
    if (e.length && /@(w+)b/.test(e)){
        e = e.replace(/@(w+)b/g, '<span style="color: blue;">$1</span>');
        $(this).html(e);
    } else {
    }
});}
)(jQuery);

但请注意,您不能在文本框中使用html,使用内容可编辑元素或代理/虚拟人,它将充当文本框并将内容/html复制到div。

工作小提琴

$1 表示第一个偏执 () 匹配,$2 表示第二个匹配,依此类推

最新更新