如何制作一个正确的Javascript正则表达式?

时间:2011-01-21 20:02:13

标签: javascript regex

我想制作正则表达式,因此它只匹配下面的值,但是我想这样做,所以你必须至少有一个(我知道它与“+”符号一起使用)az字母,但我不知道不知道在哪里放“+”使其正常工作。对此有何帮助?

.match(/^[0-9a-z]{3,10}$/i)

修改 它应匹配“12a”之类的字符串,但它不应与“123”匹配,因为它必须至少有一个a-z。

if( ! ($Username.match(/^[0-9a-z]{3,10}$/i) && $Username.match(/[a-z]/i)) ) {
    return false;
}

修改 感谢Felix现在上面的示例代码非常完美。

3 个答案:

答案 0 :(得分:3)

假设你的意思是:

  • 3到10个字符(含)
  • 所有字母或数字
  • 任何位置至少有一个字母

然后,实现这一目标的最简单方法是:

foo.match(/^[0-9a-z]{3,10}$/i) && foo.match(/[a-z]/i);

答案 1 :(得分:2)

你不能一步到位。你谈到的表达方式并不常见。你必须分几个步骤。只需与您当前的表达式匹配,然后将其与/[a-z]/表达式匹配。

答案 2 :(得分:0)

我相信这会进行过滤,但你必须分别检查字符数:

^[0-9a-z]*[a-z]+[0-9a-z]*$