正则表达式接受字符串中的数字和字母,但不仅仅是字母表

时间:2014-01-17 08:56:37

标签: regex

我需要一个在文本字段中接受字母和数字的正则表达式。如果用户仅输入字母或用户仅输入数字,则不接受。我怎么能这样做??

4 个答案:

答案 0 :(得分:1)

您可以使用如下所示的正则表达式:

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

Javascript示例:

var regex = /^(?=.*\d)(?=.*[a-z])[\da-z]+$/i;
console.log(regex.test('aaa')); // false
console.log(regex.test('111')); // false
console.log(regex.test('aaa111')); // true
console.log(regex.test('111aaa')); // true

答案 1 :(得分:0)

我认为有人会写一个更好的正则表达式然后这个,但它的工作原理:

^([a-zA-Z]+\d+[a-zA-Z\d]*)|(\d+[a-zA-Z]+[a-zA-Z\d]*)$

答案 2 :(得分:0)

(\d+[A-Za-z]+)|([A-Za-z]+\d+) should work for you.
"\d" represents a digit which can be out of [0-9].

在Java中完美运行。您可以专门检查任何其他语言或编辑。

Pass-
  123aaa
  aaa123

Rejects-
  123
  aaa

答案 3 :(得分:0)

(?i)(?=[a-z0-9]*[0-9])(?=[a-z0-9]*[a-z])[a-z0-9]*

只有字符串至少包含一个数字和一个字母才会匹配。

匹配

abc1
123a

不匹配:

abc
123