使用正则校验是最好的一种方式
var str = "username";
// 第一个 ^ 表示从开始位置匹配
// [a-zA-Z_] 表示匹配第一个非数字的字符,如果只想匹配字母,可以写成 [a-zA-Z]
// \w 表示匹配任何字类字符,包括下划线。与“[A-Za-z0-9_]”等效
// 最后一个 * 表示零次或多次匹配前面的 \w
// 下面这个正则匹配的规则就是以 非数字开头,至少长度为1的用户名
// 例如:"u" "user" "user1" "username123" "user123name"
// 上面这些都是能被匹配到的
var regEx = /^[a-zA-Z_]\w*/;
// 如果想限制用户名的长度,比如 6-12 个字符
// 那么可以使用 {5,12},匹配 \w 5-12次
// 加上最开头的一个字符,总共就是6-12的长度
var regEx1 = /^[a-zA-Z_]\w{5,12}/;
if (regEx.test(str)) {
// 符合规则的用户名
}
写了一个。希望对你有帮助:
var a = 'yourstring';
/^[a-zA-Z_][0-9a-zA-Z_]{0,}$/.test(a);
var name = "yourUserName";
//如果首位是数字或者有字母数字下划线以外的字符,返回true
var reg = /^\d{1}|(\W+)$/;
if (reg.test(name)) {
console.log("用户名由字母、数字、下划线组成,且不能以数字开头");
return;
}