正则表达式仅包含数字或字符或忽略前两个条件(如果是字母数字)
Regular expression to include numeric only or character only or ignore first two conditions if alpha numeric
我为以下情况编写了正则表达式:
只有数字(长度:4)
只有字母(应包含元音)
([0-9]{1,4})|((?=[a-z]*[aeiou])[a-z]*)
例如:9987,泰德
如何添加以下条件?
- 如果字符串包含字母数字则忽略前两种情况
人物。
例如:9ty87
如果我很好地解读了你的问题,我想你正在寻找那个:
- 只有数字且介于一到四个字符之间的字符串
- 只包含至少一个元音字母的字符串
- 只有字母和数字的字符串,至少有一个字母和一个数字。
模式:
/^(?:[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
这是一个简单的交替(我认为您不需要更复杂的东西)。所以只有一个分支会成功。
请注意,锚 ^
和 $
对于此类任务至关重要,以确保考虑到整个字符串。
我为以下情况编写了正则表达式:
只有数字(长度:4)
只有字母(应包含元音)
([0-9]{1,4})|((?=[a-z]*[aeiou])[a-z]*)
例如:9987,泰德
如何添加以下条件?
- 如果字符串包含字母数字则忽略前两种情况 人物。 例如:9ty87
如果我很好地解读了你的问题,我想你正在寻找那个:
- 只有数字且介于一到四个字符之间的字符串
- 只包含至少一个元音字母的字符串
- 只有字母和数字的字符串,至少有一个字母和一个数字。
模式:
/^(?:[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
这是一个简单的交替(我认为您不需要更复杂的东西)。所以只有一个分支会成功。
请注意,锚 ^
和 $
对于此类任务至关重要,以确保考虑到整个字符串。