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

标签 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查询”

最佳答案

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

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

正则表达式匹配并捕获主题标签(或 octothorp)以及其后的所有非空白字符,然后将它们包含在 <strong> 中。标签。

关于javascript - 如何突出显示按键事件后的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56991148/

相关文章:

javascript - 如何访问被单击元素的父元素?

javascript - 为什么我的数组会重叠

javascript - html5 3d, Canvas ,three.js

javascript - 使用 jQuery 和插件使表格可排序

javascript - Plone 和 AngularJS 路由

javascript - jQuery 函数在单击之前启动,为什么?

javascript - 如何在PHP中获取另一个页面或div上的点击事件的值?

javascript - 猫头鹰旋转木马无法正常工作

javascript - 切换复选框设置

c# - 包含逗号和数字的正则表达式