正则表达式 - 禁止像“u12345”这样的组合

时间:2014-03-28 21:58:03

标签: regex validation pattern-matching

我需要禁止此结构中的组合:

  • 从小“u”开始
    • 以下5个字符不能是数字(如果以“u”开头)
  • 除了此不允许的组合外,仅允许[a-zA-Z0-9]+

我只使用^[^u][^0-9][^0-9][^0-9][^0-9][^0-9]$这样的正则表达式,因为除了以“你”开头之外我不知道只添加。

一些允许的组合列表:

  • u12adfw3
  • u1a234
  • ud1235

不允许的组合列表:

  • U12345
  • U91
  • U1

我需要这个用于系统生成的名称的别名,如“u20”。因为我正在创建系统,当用户可以通过名称/别名/电子邮件识别(只是在数据库中查找该字符串),并且因为用户不必设置自己的别名,我想要达到一些限制。此正则表达式的目标是HTML中的输入标记中的“pattern”或提交后的PHP检查。

如果你有一些有趣的教程来做这个/有类似问题的话题,或者你只是想帮助我,请提前感谢你:)

问候

1 个答案:

答案 0 :(得分:1)

如果您在PHP中检查,可以使用preg_match并查看此正则表达式:

^(?!u\d{1,5}\b)
如果字符串以preg_match和1到5位开头,

u将返回false。

^匹配字符串的开头。

(?! ... )是一个负面的预测。如果内部匹配,则整个正则表达式将失败。

u\d{1,5}是匹配你的,后跟1到5位数。

\b是一个单词边界,可以阻止任何后续单词字符。