挣扎着一些javascript,密码/用户名错误显示

时间:2013-05-01 16:17:19

标签: javascript

注意,我将在表单提交时使用PHP验证所有内容,但如果可能,我希望立即将其显示给用户。

对于我试图检测的用户名是否只包含空格,如果它少于8个字符/数字,如果它只包含正常的有效字母而没有符号。

这似乎不起作用:

$("#username").change(function() {
  $("#username").removeClass("error");
  var letterNumber = /^[0-9a-zA-Z]+$/;
  var username = $("#username").val(); // get value of password
  if (!(username.value.match(letterNumber)) {
    // return error
  }
  if (username.length < 8) {
    // return error
  }
  if (username.trim().length() > 0) {
    // return error
  }
});

对于密码,我想允许所有符号,所有数字,所有字母,最小值8和空格的修剪。它似乎没有用。

1 个答案:

答案 0 :(得分:0)

从此改变:

if (!(username.value.match(letterNumber)) {
    // return error
}

到此:

if (!(username.match(letterNumber)) {
    // return error
}

您之前使用.value时已经检索到.val(),因此username已经是所需的字符串。


此外,.trim()测试不正确,因为.length本身就是一个属性,而不是方法)。但是,您可以删除它,因为之前的正则表达式测试已经消除了只有空格的空字符串和字符串,因此这个测试(即使更正为正确的javascript)也是不必要的。

if (username.trim().length() > 0) {
    // return error
}

将来,您应该在浏览器错误控制台或调试控制台中查找,因为它会告诉您类似undefined的内容没有方法.match()并且给出了确切的行号作为源错误。