最少 1 个字符,最少 4 个字符,最多 50 个字符

我没有使用mb_strlenand preg_match,而是尝试设计一个纯粹的正则表达式解决方案,这样我就可以通过一个函数来传递所有内容来缩短我的代码。

最小可能输入(数字字符仅用于演示数量)

  • 1@1234

最大可能输入(数字字符仅用于演示数量)

  • 123456789012345678901234567890123456789012345@1234

  • 1@123456789012345678901234567890123456789012345678

  • 以及介于两者之间的一切 123456790@123456789012345678901234567890123456789

我设计的当前模式是^.{1,}?@.{4,}?$,但我不确定如何将总字符数限制为 50?

我尝试过捕获和分组所有内容(例如(^.{1,}?@.{4,}?$){,50}[^.{1,}?@.{4,}?$]{,50}),但这些显然不起作用。


慕斯709654
浏览 197回答 1
1回答

呼如林

您可以尝试在模式的开头添加一个否定前瞻,断言总共出现不超过 50 个字符:^(?!.{51,}).{1,}?@.{4,}?$演示否定前瞻(?!.{51,})字面上断言我们看不到 51 个或更多字符,这意味着存在50 个或更少字符。
打开App,查看更多内容
随时随地看视频慕课网APP