说下我的需求,有一个输入框,用户可以往里面输入内容,用户可以给内容添加标签,当用户输入#话题 然后后面带上一个空格后,要把这个文字标红,同时还能提取所有的标签,如图所示
6条回答 默认 最新
关注 下面是一个简单的实现示例,仅供参考:
<input type="text" id="myInput"> <ul id="tagList"></ul>
// 获取输入框和标签列表 var input = document.getElementById("myInput"); var tagList = document.getElementById("tagList"); // 定义存储标签的数组 var tags = []; // 监听输入框的输入事件 input.addEventListener("input", function() { // 获取输入框中的内容 var content = input.value; // 使用正则表达式匹配 # 话题 var pattern = /#\w+\s/g; var matches = content.match(pattern); // 遍历匹配结果,将匹配的文字标红并添加到标签列表 if(matches) { for(var i = 0; i < matches.length; i++) { var match = matches[i]; var tag = match.substring(1, match.length - 1); content = content.replace(match, "<span style='color: red;'>" + match + "</span>"); if(tags.indexOf(tag) === -1) { tags.push(tag); tagList.innerHTML += "<li>" + tag + "</li>"; } } } // 更新输入框的内容 input.value = content; }); // 监听标签列表的点击事件,提取对应的标签内容并展示在控制台 tagList.addEventListener("click", function(e) { var target = e.target; if(target.tagName === "LI") { var index = Array.prototype.indexOf.call(tagList.childNodes, target); console.log(tags[index]); } });
这段代码实现了输入框中的文字匹配 # 话题并标红,同时将匹配到的标签添加到标签列表中,并且可以点击标签列表中的标签提取对应的标签内容。不过这段代码可能还需要根据您的具体需求进行调整。
解决 无用评论 打赏 举报
悬赏问题
- ¥100 科大讯飞语音唤醒词,unbuntu环境,报错
- ¥15 可以实现这个有不同背景颜色的九九乘法表吗?
- ¥50 python写segy数据时出错2
- ¥20 关于R studio 做精确稳定检验的问题!(语言-r语言)
- ¥50 用贝叶斯决策方法,设计CAD程序
- ¥20 关于#目标检测#的问题:(qq收集表到时间才能填写,填写的份数有上限)
- ¥50 ZYNQ7020双核FLAHS烧写的问题
- ¥20 ue 5 中想要实现第一人称人物左右行走摆动的效果,摄像头只向右摆动一次(关键词-结点)
- ¥15 AD9164瞬时带宽1.8G,怎么计算出来?
- ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除? HKEY_CLASSES_ROOT*\shellex\ContextMenuHandlers 没用