使用JavaScript / jQuery验证文本

时间:2014-05-05 06:12:00

标签: javascript jquery regex

在键入输入时,我想逐字符验证文本字符,例如文本为:The Quick Brown Fox

我希望逐个字符匹配

喜欢:最初,文本框为空:

我按

T =>行

h =>行

a =>不行(不会写在文中)

e =>行

等等

我写了这个jquery regex表达式。但是,它没有起作用,因为它正在比较整个文本。

$("#text").on("keypress", function(e) {
    if (!(/^The Quick Brown Fox$/i.test($(this).val()+String.fromCharCode(e.keyCode)))) {
        return false;
    }
}

4 个答案:

答案 0 :(得分:2)

你可以试试

$("#text").on("keypress", function(e) {

    var myText = ($(this).val()+String.fromCharCode(e.keyCode));

    if ('The Quick Brown Fox'.indexOf(myText) != 0) {
        return false;
    }

});

这是sample fiddle

答案 1 :(得分:1)

正则表达式不是做这种事情的最佳选择。

您最好先设置一个字符串并循环浏览字符,直到找到不匹配为止。

每次按键时,从头开始检查字符串。这会抓住人们粘贴到input

答案 2 :(得分:0)

当您的正则表达式匹配整个字符串时,您正在检查每次按键。检查完整个字符串后再检查一次。

$("#text").on("blur", function(e) {
    if (!(/^The Quick Brown Fox$/i.test($(this).val()))) {
        return false;
    }
}

答案 3 :(得分:0)

可以循环并逐个字符地比较并进行处理。

<强> HTML:               输入正确的文字:

JQUERY CODE:

    var txt = "The Quick Brown Fox";
    var index = 0;
    $("#text").on("keyup", function (e) {
          var st = $('#text').val();
          while (index < st.length) {
              if (txt[index] === st[index]) index++;
              else {
                  $(this).val(st.substr(0, index));
                  break;
              }
          }
    });

现场演示: http://jsfiddle.net/dreamweiver/2dadL/21/

快乐编码:)