【发布时间】:2013-01-20 22:43:52
【问题描述】:
我对正则表达式并不太熟悉,但我只是觉得我更擅长阅读和理解它们,而不是自己编写它们。无法让它工作。
电子邮件:密码
基本上,它需要验证一个电子邮件地址和一个任意长度的密码,用冒号隔开,周围有或没有空格。
密码绝对可以包含任何字符,包括冒号。电子邮件不能包含冒号,但据我所知,它们确实不能包含冒号。
正确:
- Em@il.com:密码
- Em@il.com : p@55w:rd
- Em@il.co.uk :p@$ 字
- Em@il.com:密码
错误:
- Nomail.com:密码
- Nom@ailcom:密码
- 无邮箱:密码
- E:m@il.com:password
谢谢!
非常感谢 F.J!在他的帮助以及我通常使用的Markus Sipilä 的电子邮件验证下,它变成了这样:
^[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})[ ]?:.*$
当然,当将 F.J 的代码 ([ ]?:.*) 添加到任何电子邮件验证字符串的末尾时,请记住,您可能必须去掉行尾弓。向其中添加“可选”部分,这意味着它可以留空 (^$) 或 (|) 跟随字符串,使得:
(^$|^[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})[ ]?:.*$)
【问题讨论】:
-
向我们展示您到目前为止所做的尝试。 不要描述它,而是编辑问题并粘贴到实际代码中。然后告诉我们什么不起作用。当你尝试它时发生了什么?你得到不正确的结果吗?您得到 no 结果了吗?如果结果不正确,是什么导致它们不正确?你期待什么?你得到任何正确的结果了吗?如果是这样,它们是什么?不要让我们猜测。
-
我明白,但是我尝试了很多,以至于我以一点绝对的胡言乱语结束,并且从头开始显示所有不正确的尝试并没有多大帮助,我想,尤其是当遇到一个知道如何编写正则表达式。我需要的只是正确的正则表达式。到目前为止我所尝试的并没有让任何尝试通过(表单提交到 PHP)。
-
@Downvoter,我知道我没有展示研究成果(除了我在网站和互联网上搜索了地狱,发现以前没有人问过这个问题)。但是我在发布问题时确实遵循了所有规则和提示,并且我确信显示所有失败并不是其中的一部分。我很确定这个问题再清楚不过了,所以请详细说明。
-
我知道您尝试了很多,但请给我们一些东西。我们不会为您编写代码,但我们会帮助您。
-
我以后在这里问任何问题时都会记住这一点。如果我敢的话。这是我在这里提出的第一个也是唯一一个问题,我彻底遵循了所有指导方针,并查看了其他问题,看看我是否做得对。很抱歉,我不知道或没有看到有关此特定规则的任何迹象,并且为此被否决,我觉得作为一个新人有点沮丧和恐惧。我相信这篇文章很清楚,现在也很有帮助。再次感谢 F.J,感谢您的理解。