使用正则表达式对字符串进行JavaScript验证

时间:2016-08-22 18:40:06

标签: javascript regex

我必须验证以A-za-z开头并且可以包含0-9_的字符串字段。我必须设置limit min 1 char和max 10 char。

Exp=/^([a-zA-Z]) +([0-9._]*)/;

3 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

/^[a-zA-Z][0-9_]{0,9}$/

请参阅demo on regex101.com

答案 1 :(得分:0)

  

我必须验证以A-za-z开头并且可以包含0-9_的字符串字段。

我猜A-za-z是一个拼写错误,你的意思是A-Za-z。这很容易,我们使用^作为字母的开头和[A-Za-z]字符类。

  

我必须设置limit min 1 char和max 10 char。

这意味着,我们已经在步骤1完成了“min 1 char”要求(开头一个字母)。现在,我们可能有字母,数字或下划线,0到9次出现 - 也就是说,我们需要使用{0,9}限制量词 - 直到字符串的末尾(即$)。 JS正则表达式中用于字母,数字和下划线的简写模式为\w

使用

/^[a-zA-Z]\w{0,9}$/

var re = /^[a-zA-Z]\w{0,9}$/; 
var str = 'a123456789';
if (re.test(str)) {
  console.log("VALID!")
} else { 
  console.log("INVALID!")
}
 

答案 2 :(得分:0)

function isValid(string){
    if (string.length < 1 || string.length > 10)
        return false;
    return /^[a-zA-Z][0-9_]*$/.test(string);
}

console.assert(isValid("A"));
console.assert(isValid("a12345"));
console.assert(!isValid(""));
console.assert(!isValid("x123456787212134567"));
console.assert(!isValid("abcdef"));
console.assert(!isValid("012345"));

不要试图用正则表达式来检查字符串长度,在大多数情况下它是缓慢而繁琐的。