我有 this jsfiddle

我有一些词,当用户输入它们时,需要提醒用户。
现在,当我输入某行时,例如 I love ants 它会提醒我整行 I love ants ,但我只想提醒我 ants 。 (在我的例子中ants是一个需要过滤的词。引用jsfiddle。)

var filter = ['ants', 'words'],
    reg = new RegExp("(" + filter.join("|") + ")", "g");

$('#texta').keyup(function(){
    $("#dest").html(
        $(this).val().replace(reg, "<mark>$1</mark>")
    );
   if(reg.test($(this).val())==true)
   {
       alert($(this).val());
   }
});

最佳答案

您可以使用以下命令将其更改为仅显示匹配的部分:

alert($(this).val().match(reg));

这是一个 jsFiddle

如果您想为每场比赛单独发出警报,则必须进行循环。

编辑: Here's a version 每次用户在列表中键入一个单词时都会发出警报。

编辑:here's a version 演示了可选使用正则表达式而不是单词。请注意,任何斜杠都必须进行双重转义。因此,例如,要匹配 ants 但不匹配 pants ,请将 \\bants\\b 添加到单词列表中。例如,此演示将匹配 \bb..\b (因此, barbaz 等,但不匹配 batters )。

10-07 21:12