纯html / javascript输入字符限制

时间:2015-09-05 21:52:50

标签: javascript html

我试图限制用户在文本字段中输入的数据,只允许其中的字母,并且在此html行中必须包含至少2个单词(名称和姓氏):

 <label name="CardHolderName">Card Holder Name</label> 
 <input type="Text" name="CardHolderName"required/><br>

我尝试在javascript中使用“RegExp”/ RegularExpression,但由于我是编码的初学者而且从未学过使用正则表达式,我无法弄明白,任何人都可以建议/帮助我吗?谢谢。

P.S:如果可能,代码/功能必须只在html和javascript中。

2 个答案:

答案 0 :(得分:2)

您需要在javascript中收听按键事件

HTML

 <label name="CardHolderName">Card Holder Name</label> 
 <input type="Text" id="cardHolderName" name="CardHolderName" required/><br>

的Javascript

  // we listen key up event of the keyboard 
 document.getElementById ('cardHolderName').keyup(function (e) {
         var t = e.currentTarget; // get the element
         var name = t.value; // get the value of the element 
         if(name.split(' ').length < 2) { // count elements splitted by an space
               // if it's less than two words, make stuff
         } 
 }) ;

答案 1 :(得分:0)

如果您将“单词”定义为至少两个字符,则可以执行以下简单操作:

var is_valid = function(input) { 
    var min_length = 2, 
        space = ' ', 
        index_of_space = input.indexOf(space); 

    return
        index_of_space !== -1 
        && index_of_space >= min_length 
        && index_of_space < (input.length - min_length);
};

返回的条件读作“输入包含空格,空格至少是第3个字符,空格不在最后两个字符内”。

indexOf函数仅适用于现代浏览器,如果您需要支持旧浏览器(IE 8及更低版本),则可以使用polyfill here