gpt4 book ai didi

javascript - 具有非常具体规则的用户名和电子邮件正则表达式

转载 作者:行者123 更新时间:2023-11-30 12:53:14 25 4
gpt4 key购买 nike

我正在尝试制作一个正则表达式来验证用户名。到目前为止,我有:

/^[^\.]{1}[A-Za-z0-9]*\.?[A-Za-z0-9]*[^\.]{1}$/

但它并没有像我预期的那样工作。

以下规则用于验证用户名:

  1. 长度必须大于 3 个字符。 (最小长度 = 3)
  2. 长度必须少于 20 个字符。 (最大长度 = 20)
  3. 它最多可以包含一个句点。
    • 例如xyzxyz.com 有效,但 xyz.abc.com 无效。
  4. 它不能在字符串的开头或结尾包含句点。
    • 例如.xyzxyz. 无效。
  5. 除了可选句点外,它可能只包含 [A-Za-z0-9] 字符。

此外,在另一个页面上,用户可以输入他们的用户名或电子邮件地址。有什么方法可以验证字符串是同一正则表达式中的有效用户名还是有效电子邮件地址?

一些有效值的例子:

  1. abc
  2. abc.com
  3. abc@zyx.com(电子邮件地址)
  4. abc123
  5. 123abc
  6. 1a2b3c

一些无效值的例子:

  1. .abc(前导期)
  2. abc.(尾随期)
  3. a b c(无效字符)
  4. abc@xyz(无效的电子邮件地址)
  5. a.b.c(多个时期)
  6. a-b$c(无效字符)

最佳答案

如果您在脚本中检查长度而不是使用正则表达式,这将非常容易

但是如果必须的话,你可以使用前瞻来做到这一点:

/^(?=[a-z0-9.]{3,20}$)[a-z0-9]+\.?[a-z0-9]+$/i

[A-Za-z0-9]\w 相同

如果您想使用相同的正则表达式来验证用户名电子邮件 地址,只需将您的第二个正则表达式放在| 符号之后:

/^(?=[a-z0-9.]{3,20}$)[a-z0-9]+\.?[a-z0-9]+$|^.*@\w+\.[\w.]+$/i

^.*@\w+\.[\w.]+$ 在这种情况下是一个非常简单的邮件验证(你可能想使用更好的)

你不应该在一个正则表达式中做太多。

关于javascript - 具有非常具体规则的用户名和电子邮件正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20241452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com