0

我想检查一个字符串在 javascript 中是否为严格字母。有效的字符串不应包含任何特殊字符,并且必须至少包含一个大写或小写字母和一个数字。

  • aaa, 1111, 112@#, 12qw#: 无效
  • aaa111, 12abc, abc123abc, 12bc12: 有效

任何人都可以帮助我构建我的正则表达式吗?

4

2 回答 2

6

使用/^(\d+[a-z]|[a-z]+\d)[a-z\d]*$/i

> /^(\d+[a-z]|[a-z]+\d)[a-z\d]*$/i.test('111aa')
true
> /^(\d+[a-z]|[a-z]+\d)[a-z\d]*$/i.test('aaa222')
true
> /^(\d+[a-z]|[a-z]+\d)[a-z\d]*$/i.test('aaa')
false
> /^(\d+[a-z]|[a-z]+\d)[a-z\d]*$/i.test('222')
false
> /^(\d+[a-z]|[a-z]+\d)[a-z\d]*$/i.test('112aaa#')
false
于 2013-11-15T07:05:11.800 回答
1
/^[a-z0-9]*([a-z]\d|\d[a-z])[a-z0-9]*$/i

导入位在中间:它要么是一个字母后跟一个数字,要么是一个数字后跟一个字母。如果一个有效字符串至少包含每个字符串中的一个,则该字符串必须有一部分是正确的。然后我们只需在两侧填充零个或多个字母数字字符。

http://regex101.com/r/wZ0qL2

于 2013-11-15T06:54:33.083 回答