1

我正在尝试为一些验证构建一个正则表达式。我想检查一个字符串是否是至少一个字母和一个整数的组合。为此,我已经尝试过,^(?=.*[\w][\d]).+我不太了解正则表达式。此表达式检查字符串中的 aplhabet 和数字,但它希望字符串以字母开头。相反,我只想检查字符串中是否同时存在字母和数字,而不管出现的数量和顺序如何。字母表也可以是大写或小写,所以我猜单词检查将不区分大小写。该字符串可能包含特殊字符以及任何组合和顺序的单词和数字,但应丢弃任何空格。任何人都可以帮忙吗?

4

2 回答 2

3

您必须使用两个前瞻:

/(?=.*[a-z])(?=.*[0-9])/i
于 2013-04-05T04:53:25.860 回答
1

Blender 的回答是正确的,但是我建议使用更容易理解的正则表达式。

您正在寻找的实际上是以下两种情况之一:一串字符,首先包含一个字母,然后是一个数字,或者相反。

第一种情况是:/.*[a-zA-Z].*[0-9].*/.

第二种情况是:/.*[0-9].*[a-zA-Z].*/.

然后,您可以将它们组合成一个语句:

/(.*[a-zA-Z].*[0-9].*)|(.*[0-9].*[a-zA-Z].*)/

这可以进一步简化,但我希望这能让您了解如何处理这样的正则表达式问题。

于 2013-04-05T05:00:34.460 回答