RegEx:必须至少有一个数字和字母,但没有其他字符/空格

时间:2014-07-07 15:07:02

标签: javascript regex

有点卡住(RegEx根本不是我的强项!) - 我需要一个表达式来验证任何只包含数字和字母的字符串,但每个字符串必须至少有一个(大写和小写都是可互换的和允许的)。它不能包含特殊字符或空格。

做一些先前的研究我发现了这一点,但它并没有排除空格,尽管我试图这样做但我不能修改它以排除空格和特殊字符:

^.*(?=.*\d)(?=.*[a-zA-Z]).*$

需要验证的字符串的一些示例:

  • ieoEon43
  • 43ifsiojfdfs
  • 6I
  • ijf943kNFSfsf

任何帮助将不胜感激!如果重要的是我在JavaScript中运行这些表达式。

3 个答案:

答案 0 :(得分:6)

试试这个:

/^(?=.*[a-z])(?=.*\d)[a-z\d]+$/i

Regex101 Demo

说明:

Regular expression visualization

Debuggex Demo

修改:修复了特殊字符问题。

答案 1 :(得分:2)

另一种有趣和荣耀的尝试! (它更短!)

^([a-z]+\d+|\d+[a-z]+)\w*$

Regular expression visualization

Debuggex Demo

<强> EDIT3:

做了一个小修复,它现在 DOUBLE 其他答案的速度!!!

JSPERF

答案 2 :(得分:-4)

根据我对你问题的理解,我在regxr 1.0上做了一个演示。

如果您点击此链接,您可以自己查看演示: Regexr demo

更新: 正则表达式是: /^([a-z]+[0-9]+|[0-9]+[a-z]+)$/

您可以将其设为敏感案例: /^([a-z]+[0-9]+|[0-9]+[a-z]+)$/i