检查一个表达式是否包含正则表达式中的下一个表达式



我希望我的正则表达式允许字母数字字符,"/_-"和中间的空格,但它必须始终至少有一个字母数字字符

我的验证是这样的,

/^([A-Za-z0-9/-]+[A-Za-z0-9/-\s]*[A-Za-z0-9/_-]+($/

它应该接受 **ABC_1-2-3,但不能单独允许 123 或 -_/

有人可以帮我吗?

下面给出的正则表达式将捕获带有字母数字字符的字符串,其中包含可选的空格、连字符和下划线。试试吧。

([*A-Za-z]+(s+)?([d-_]+)?)

您的正则表达式几乎是正确的,您需要在开头添加 2 个正面前瞻,以要求至少 1 个字母和至少 1 位数字:

/^(?=.*[a-z])(?=.*d)[a-z0-9/_-][a-z0-9/_s-]*[a-z0-9/_-]$/i

请参阅正则表达式演示(在演示中,由于演示是多行的,因此s被替换为空格(。

详情

  • ^- 字符串的开头
  • (?=.*[a-z])- 在除换行符字符以外的任何 0+ 字符之后,必须至少有 1 个字母(将.*替换为[^a-z]*以获得更好的性能(
  • (?=.*d) - after any 0+ chars other than line break chars, there must be at least 1 digit (replace.with\D' 以获得更好的性能(
  • [a-z0-9/_-]- 字母、数字、/_-
  • [a-z0-9/_s-]*- 0+ 字母、数字、/、空格、_-
  • [a-z0-9/_-]- 字母、数字、/_-
  • $- 字符串结尾。

i修饰符使模式不区分大小写。

最新更新