我有一个输入框,其中输入了用户名但是如果输入了无效字符,我希望它出错。下面的代码就是我正在使用的代码;我会把什么放在“某事”部分?
var numbers = new RegExp("SOMETHING");
$(this).removeClass("active");
if(($(this).val() == "") || $(this).val().match(numbers))
{
$("#firstNameErrorMsg").html("First name can only contain letters. ");
}
else
{
$("#firstNameErrorMsg").html("OK");
}
答案 0 :(得分:2)
试试这个正则表达式
[A-Za-z]
这将只匹配小写和大写字符
答案 1 :(得分:2)
以下是我多年前写的一些模式:
patt['name'] = /^[a-z ,-]+$/i;
patt['username'] = /^[A-z0-9_-]+$/i;
patt['email'] = /^[a-z0-9]+(?:[\.-]?[a-z0-9]+)*@[a-z0-9]+([-]?[a-z0-9]+)*[\.-]?[a-z0-9]+([-]?[a-z0-9]+)*([\.-]?[a-z]{2,})*(\.[a-z]{2,5})+$/i;
patt['website'] = /^http(s)?:\/\/(www\.)?[a-z0-9]+([-]?[a-z0-9]+)*[\.-]?[a-z0-9]+([-]?[a-z0-9]+)*([\.-]?[a-z]{2,})*(\.[a-z]{2,5})+$/i;
patt['age'] = /^(?:([1][3-9]|[2-9][0-9]))$/i;
patt['subject'] = /[a-z0-9?!:;'&_\. ,-]+/i;
如果你想使用它们,你应该检查这个条件:
if(($(this).val() == "") || ! $(this).val().match(patt['name'])){ // in case.
...
}
但是如果你想检查不需要的字符,那么username
输入将是一个很长的模式。
答案 2 :(得分:0)
如果您正在寻找验证您的用户输入,只有字母,我建议使用字符代码,如下所示:
在输入标记
对于事件args传递,检查字符代码(有些浏览器使用keyCode,其他浏览器使用哪个)
function checkOnKeyDown(event){
if(event.KeyCode> = 65&& event.keyCode< = 122)
{
//一切都好 - 只接受大写/小写字母
}
其他
{
//错误
}
}
这是一个包含所有keyCode到字符映射的列表;):http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
答案 3 :(得分:0)
建议您阅读一些关于regexes和experiment with them的内容。
为了得到简单的字母而不是别的,只需:
^[a-zA-Z]+$
允许1..n小写&在开始和结束之间找到大写字母,没有别的。 Sushanth的版本将匹配输入的部分片段,让用户在其他地方使用空格,数字等,只要输入中有一个带有单词的输入。
答案 4 :(得分:0)
这应该是你要做的事情的完整实现:
var invalid = /[^A-Za-z]+/;
$(this).removeClass("active");
if($(this).val() == "" || invalid.test($(this).val()))
{
$("#firstNameErrorMsg").html("First name can only contain letters. ");
}
else
{
$("#firstNameErrorMsg").html("OK");
}
答案 5 :(得分:0)
Sushanth大多是正确的,但你需要匹配任意数量的字母,而且必须从头到尾只有字母,所以你应该做这样的事情
var name = new RegExp('^[A-Za-z]+$');
$(this).removeClass('active');
if($(this).val().match(name)) {
$('#firstNameErrorMsg').html('OK');
} else {
$('#firstNameErrorMsg').html('First name can only contain letters.');
}