【问题标题】:How to add a blank space character to regular expression如何在正则表达式中添加空格字符
【发布时间】:2017-10-03 04:02:37
【问题描述】:

我正在使用 asp.net (c#) 并且为了验证电子邮件地址字段,我有以下正则表达式:

[RegularExpression("^[a-zA-Z0-9_\\.-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$"]

这工作得很好,除了当任何前导/尾随空格添加到电子邮件字段时,它会抛出一个错误作为无效电子邮件。如何修改正则表达式以使其接受此类空格(稍后在我的代码中,我将从任一侧删除任何空格,以便存储有效的电子邮件)?谢谢

【问题讨论】:

  • 顺便说一下,+ 是电子邮件地址中的有效字符。 Gmail 允许您拥有me@gmail.com,然后您可以将其别名为:me+alias@gmail.com。请参阅here 了解更多信息。

标签: c# asp.net regex


【解决方案1】:

这听起来不对,允许空格,你稍后会修剪,正则表达式正在帮助这种情况并提供验证(尽管你仍然应该检查服务器端)

我认为在开头和结尾添加(\\s*) 应该对您有所帮助。即

[RegularExpression("^(\\s*)[a-zA-Z0-9_\\.-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}(\\s*)$")]

这是说以空格开头或结尾

【讨论】:

  • 那行得通。谢谢你。顺便说一句,我允许空间和他们修剪它的原因是,有时人们从另一个页面/应用程序复制他们的电子邮件地址,当粘贴时,不知何故它带有一个空间。他们没有注意到空间,我不想每次都给他们一个错误。对用户来说太不方便了。
  • 对于未来阅读本文的人:正如我在原始问题中所说,+ 符号在 @ 之前有效,通常允许用户创建收件箱的别名。 \+ 应该添加到第一个字符集中。请参阅here 了解更多信息。
【解决方案2】:

试试这个

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

本站也有帮助https://regexr.com/

【讨论】:

    猜你喜欢
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    相关资源
    最近更新 更多