我有一个正则表达式问题,有60个字符的电子邮件字段。我让正则表达式用于电子邮件验证, 但我不确定如何忽略电子邮件后的空格,但只有整个字符串是60个字符。如果有 60个字符之后的任何内容都无效。
<canvas id="background" width="1000" height="1000"></canvas>
这应该是一个有效的字符串(我在这里使用引号来显示字符串长度) 'test1.test123@testtesttest.com'
这不应该是有效的字符串 'test1.test123@testtesttest.com m'
答案 0 :(得分:0)
提到的正则表达式不起作用(见下文)
所以我使用了我的并且添加了最大限制为60个字符的验证
^(?!^.{60})(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|([a-zA-Z0-9]+[\w-]*\.)+[a-zA-Z]{1}[a-zA-Z0-9-]{1,23})
此正则表达式使用lookarounds语法。您可以在各种屏幕截图中看到输出。您可以在here查看其工作原理。
此处(?!^.{60})
匹配60个字符的最大限制。其余的正则表达式语法用于验证正确的电子邮件地址。
如果还是,请参阅正则表达式不验证字符串test1.test123@testtesttest.com m
。
答案 1 :(得分:0)
好吧,如果你坚持使用正则表达式,你可以使用positive lookahead来限制字符串的总长度,只需在你的正则表达式之前添加以下内容:
(?=.{6,60}$)
这会将输入字符串的总长度限制在6 (有效电子邮件地址的最小长度)和60 (您首选的最大长度)之间。
您还可以将[ \t]+
替换为\s+
以匹配其他空格字符或\s*
以接受输入(如果它以空白字符结尾或不结束)如果你有兴趣匹配所有类型的空格字符。
因此,您的模式看起来像这样:
^(?=.{6,60}$)([A-Za-z0-9!#$%&'*+/=?^_`{|}~-])([A-Za-z0-9.!#$%&'*+/=?^_`{|}~-])*[@]([A-Za-z0-9.\-])([A-Za-z0-9.\-])*[.][A-Za-z.]{2,6}\s*$
希望有所帮助。