我有一个输入字段,输入文本和按钮。我也有一系列预定义的单词。JSFiddle
var strArray = ["critical","normal","high","low","blood pressure","fracture"];
假设输入文本是
“病人病情危急,血压很低”
单击Submit按钮应将输入文本与数组中的所有字符串进行比较,找出匹配的单词,并以特定颜色突出显示与输出相同的文本。
预期输出
相同的文本与匹配的单词突出显示。
“病人处于危重状态,血压非常”
是否存在使用javascript / jQuery实现这一目标的方法?
发布于 2014-11-06 06:03:58
使用动态Regexp忽略大小写,只命中全词匹配和[].forEach:
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>"
发布于 2014-11-06 06:32:27
您可以使用下面的代码。
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://stackoverflow.com/questions/26772661
复制相似问题