按键事件后如何突出显示文本?

时间:2019-07-11 14:07:42

标签: javascript jquery

我正在尝试突出显示搜索表单中#字符后的所有文本。

我想获得一种效果,在突出显示文本之前,先按空格键。

// Detects hashtag keypress and highlights word
$('#nav-search').on('keydown',function(e){

  // console.log(e.which)
  // 163 == '#'

  if(e.which==163){
    console.log('# Pressed')
  }

});

我正在使用keydown事件来检测#符号作为输入。

下面以粗体突出显示效果示例。

例如“这是一个 #test #search 查询”

1 个答案:

答案 0 :(得分:2)

为此,您应该使用replace。将此添加到您的keydown处理程序中:

$(this).val($(this).val().replace(/(?!<strong>)(#.*?)\s/g, "<strong>$1</strong>"));

regex匹配并捕获#号标签(或octothorp)以及其后的所有非空白字符,然后将它们括在<strong>标记中。