首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在将输入文本与字符串数组进行比较之后,突出显示结果中的匹配单词。

在将输入文本与字符串数组进行比较之后,突出显示结果中的匹配单词。
EN

Stack Overflow用户
提问于 2014-11-06 05:57:50
回答 2查看 1.6K关注 0票数 1

我有一个输入字段,输入文本和按钮。我也有一系列预定义的单词。JSFiddle

代码语言:javascript
运行
复制
var strArray = ["critical","normal","high","low","blood pressure","fracture"];

假设输入文本是

“病人病情危急,血压很低”

单击Submit按钮应将输入文本与数组中的所有字符串进行比较,找出匹配的单词,并以特定颜色突出显示与输出相同的文本。

预期输出

相同的文本与匹配的单词突出显示。

“病人处于危重状态,血压非常”

是否存在使用javascript / jQuery实现这一目标的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-06 06:03:58

使用动态Regexp忽略大小写,只命中全词匹配和[].forEach:

代码语言:javascript
运行
复制
var r=["critical","normal","high","low","blood pressure","fracture"],
s="the patient is in critical condition and the blood pressure is very low";

// replace each keyword in r with a mark'd replacement:
r.forEach(function(a){ 
         s=s.split(RegExp("\\b"+a+"\\b","i")).join("<mark>"+a+"</mark>");  
});

// view s after replacements:
s; // == "the patient is in <mark>critical</mark> condition and the <mark>blood pressure</mark> is very <mark>low</mark>"
票数 6
EN

Stack Overflow用户

发布于 2014-11-06 06:32:27

您可以使用下面的代码。

代码语言:javascript
运行
复制
var strArray = ["critical", "normal", "high", "low", "blood pressure", "fracture"];
$("input[type='submit']").on('click', function (es) {
    var tmp = [];
    var stmt = $("input[type='text']").val();
    var stmt_arry = stmt.split(" ");
    $.each(strArray, function (i, vals) {
        $.each(stmt_arry, function (j, sVal) {
            if (sVal == vals) {
                stmt_arry[j] = "<b>" + sVal + "</b>";
            }
        });
    });
    var req_stmt = stmt_arry.join(" ");
    $("#result").html(req_stmt);
});

更新Fiddle..。

https://jsfiddle.net/yeswanth/nye9skd7/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26772661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档