javascript正则表达式(用户名验证)

时间:2012-03-09 04:19:01

标签: javascript regex

我想强制执行

  1. 输入的firstname应该只包含字符A-Z,a-z和 -
  2. 输入登录名应仅包含字母数字字符
  3. 如何在javascript中限制这两个规则?

    下面是我的用户名正则表达式的代码(jsp)。但它运作不正常。

    function validateForm(){
        var nameRegex = /^[a-zA-Z\-]+$/;
        var validfirstUsername = document.frm.firstName.value.match(nameRegex);
        if(validUsername == null){
            alert("Your first name is not valid. Only characters A-Z, a-z and '-' are  acceptable.");
            document.frm.firstName.focus();
            return false;
        }
    }
    

    谢谢!

2 个答案:

答案 0 :(得分:18)

除了不一致的变量引用之外,您所拥有的代码看起来还不错(请参阅 Josh Purvis的评论)。

以下正则表达式适用于您的名字规范:

var nameRegex = /^[a-zA-Z\-]+$/;

为您的用户名检查添加数字非常简单:

var usernameRegex = /^[a-zA-Z0-9]+$/;

注意:编写正则表达式的方法有很多种。我选择提供与您开始时匹配的版本。我鼓励您完成这个Regular Expression Tutorial

答案 1 :(得分:0)

这是我想出的验证功能,根据您自己的用例进行定制:

function isUserNameValid(username) {
  /* 
    Usernames can only have: 
    - Lowercase Letters (a-z) 
    - Numbers (0-9)
    - Dots (.)
    - Underscores (_)
  */
  const res = /^[a-z0-9_\.]+$/.exec(username);
  const valid = !!res;
  return valid;
}