我试图限制用户在文本字段中输入的数据,只允许其中的字母,并且在此html行中必须包含至少2个单词(名称和姓氏):
<label name="CardHolderName">Card Holder Name</label>
<input type="Text" name="CardHolderName"required/><br>
我尝试在javascript中使用“RegExp”/ RegularExpression,但由于我是编码的初学者而且从未学过使用正则表达式,我无法弄明白,任何人都可以建议/帮助我吗?谢谢。
P.S:如果可能,代码/功能必须只在html和javascript中。
答案 0 :(得分:2)
您需要在javascript中收听按键事件
<label name="CardHolderName">Card Holder Name</label>
<input type="Text" id="cardHolderName" name="CardHolderName" required/><br>
// 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。