0

请注意,我将在提交表单时使用 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 个和修剪空格。它似乎不起作用。

4

1 回答 1

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()信息,并为您提供确切的行号作为错误的来源。

于 2013-05-01T16:23:02.793 回答