我想强制执行
如何在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;
}
}
谢谢!
答案 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;
}