首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在每个空格后标记一个特定的单词

在每个空格后标记一个特定的单词
EN

Stack Overflow用户
提问于 2012-09-21 13:57:31
回答 2查看 119关注 0票数 0

如果用户键入文本区域中不需要的单词,我将试图警告他。

这只是对一些词的一点验证。

我能做出这样的事情:

代码语言:javascript
复制
var words = "hello";
$("textarea").keyup(function(e){
    var spliting = $("textarea").val().split(" ");
    if(e.keyCode == 32){ // when the user hits space bar
        if($.inArray(words, spliting) != -1){
            $("span").css("background","red");
        }else{
            $("span").css("background","green");
        }
    }
});​

这是最好的方法吗?

如果需要检查多个单词,如何将变量words迁移为array

演示

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-21 14:02:35

要使用数组,您将需要对其中的每个单词进行循环,并对拆分数组中的每个单词进行循环。但是,您可以在第一次比赛中返回:

代码语言:javascript
复制
var words = ["hello","goodbye"];
$("textarea").keyup(function(e){

        var spliting = $("textarea").val().split(" ");

        for (var i=0; i<words.length; i++) {
          if($.inArray(words[i], spliting) != -1){
              $("span").css("background","red");
              // break on first match since there is no need to continue looping
              // if it is already red.
              break;
          }else{
              $("span").css("background","green");
          }
        }
});​

我已经删除了空位的支票。尽管它提高了功能的效率,但当某人回到正确的拼写并以一个无效的单词结束时,您需要警惕一些情况。按照您的方式,除非稍后输入空格,否则这些情况永远不会导致找到标记的单词。

onchangeblur事件调用此函数也是可取的,因为输入不是用户向表单输入输入的唯一方式。

以下是更新的演示

票数 2
EN

Stack Overflow用户

发布于 2012-09-21 14:06:00

您不需要每次按下键时都需要.split输入,在这种情况下,正则表达式是首选的:

检查更新的小提琴

若要基于数组生成表达式,请执行以下操作:

代码语言:javascript
复制
var blackList = ['hello','world'];
var expression = new RegExp('\\b(' + blackList.join('|') + ')\\b','i');

$("textarea").keyup(function(e)
{
  //if (e.keyCode === 32)
  //{in comment after reading the answer posted by Michael Berkowski
        if ($(this).val().match(expression))
        {
            $("span").css("background","red");
            return;
        }
        $("span").css("background","green");
  //}
});​
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12531999

复制
相关文章

相似问题

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