正则表达式前瞻或条款

时间:2015-03-23 15:18:10

标签: regex regex-lookarounds

我在前瞻中需要一个或一个条款:

/^(?=[A-Za-z0-9]{2,50}$)[a-zA-Z0-9]+[A-Za-z0-9'\s]+$/m

在这里,我需要一个大写,小写和一个数字与我的前瞻。

我需要的是需要大写和小写的前瞻,需要小写的第二个子句,或者只需要数字的第三个子句。

以下是一些数据:

  • 224
  • Jonscompany
  • jonscompany

1 个答案:

答案 0 :(得分:0)

我不太了解你的需求,但是那样好吗?

/^(?=[A-Za-z0-9]{2,50}$)(?=.*(?:[A-Za-z]|\d))[a-zA-Z0-9]+[A-Za-z0-9'\s]+$/m

愿这就足够了:

/^(?:\d+|[a-zA-Z]+)$/

根据评论:

/^(?=[A-Za-z0-9'\s]{2,50}$)(?=.*(?:[A-Za-z]|\d))[a-zA-Z0-9]+[A-Za-z0-9'\s]+$/m

<强>解释

/
^                           : Start of string
(?=[A-Za-z0-9'\s]{2,50}$)   : lookahead, from 2 up to 50 characters that are in the class
(?=.*(?:[A-Za-z]|\d))       : lookahead, there is at least one letter or one digit
[a-zA-Z0-9]+                : one or more alphanum
[A-Za-z0-9'\s]+             : one or more alphanum or quote or space
$                           : end of string
/m