正则表达式仅包含数字或字符或忽略前两个条件(如果是字母数字)

Regular expression to include numeric only or character only or ignore first two conditions if alpha numeric

我为以下情况编写了正则表达式:

([0-9]{1,4})|((?=[a-z]*[aeiou])[a-z]*)

例如:9987,泰德

如何添加以下条件?

如果我很好地解读了你的问题,我想你正在寻找那个:

  • 只有数字且介于一到四个字符之间的字符串
  • 只包含至少一个元音字母的字符串
  • 只有字母和数字的字符串,至少有一个字母和一个数字。

模式:

/^(?:[0-9]{1,4}|[bcdfghj-np-tv-z]*[aeiou][a-z]*|[a-z]+[0-9][a-z0-9]*|[0-9]+[a-z][a-z0-9]*)$/i

或更多分解

/^(?:[0-9]{1,4}(?:[0-9]*[a-z][a-z0-9]*)?|[bcdfghj-np-tv-z]*(?:[aeiou][a-z]*|[a-z]+[0-9][a-z0-9]*))$/i

这是一个简单的交替(我认为您不需要更复杂的东西)。所以只有一个分支会成功。

请注意,锚 ^$ 对于此类任务至关重要,以确保考虑到整个字符串。