我正在使用asp.net memebrlogin_control并获得异常“参数'username'不得包含逗号。参数名称:username”。我在这个
中使用emailID作为用户名如何删除此错误,我还想知道应该禁止验证电子邮件地址的字符列表是什么。
答案 0 :(得分:0)
尝试使用正则表达式验证用户名字段,然后再将其传递给您传递的任何方法。这是一个例子:
答案 1 :(得分:0)
阅读RFC 2822以获取完整的电子邮件地址语法。如果您通过BNF工作,您会发现"@,@"@foo.bar
完全没问题,如果不寻常的话。但是,您要求的规则可以在3.2.4节中找到:
atext = ALPHA / DIGIT / ; Any character except controls,
"!" / "#" / ; SP, and specials.
"$" / "%" / ; Used for atoms
"&" / "'" /
"*" / "+" /
"-" / "/" /
"=" / "?" /
"^" / "_" /
"`" / "{" /
"|" / "}" /
"~"
atom = [CFWS] 1*atext [CFWS]
dot-atom = [CFWS] dot-atom-text [CFWS]
dot-atom-text = 1*atext *("." 1*atext)
和第3.4.1节:
addr-spec = local-part "@" domain
local-part = dot-atom / quoted-string / obs-local-part
domain = dot-atom / domain-literal / obs-domain
如果您忽略了dot-atom
和local-part
规则中domain
以外的所有内容,则您将匹配常用或花园地址。您的asp.net控件可能不接受所有有效的RFC2822地址,因此您应该检查该文档。
您可能会执行与“%< hexcode>”类似的操作将有效(或不是)电子邮件地址转换为您的控件可以接受的用户名参数的技巧。
来自O'Reilly的(掌握正则表达式过去曾经有一个庞大的单页正则表达式(大多数是正确的)用于邮件地址,但它已经在第3版中消失了。)
答案 2 :(得分:-1)
在任何情况下,电子邮件地址都不允许使用逗号。如果您输入没有逗号的用户名会怎样?