-3

.我需要在字符串输入中不允许超过一个句点 ( )。使用 Ruby 正则表达式的最佳方法是什么?

回复评论:

我想在电子邮件注册期间限制在电子邮件地址中仅输入一个句点。我有用于电子邮件输入的基本电子邮件正则表达式。我想知道,如果可以.通过正则表达式本身限制 () 的数量,或者我应该使用 Ruby 库。

是的,这是一个新手问题。

正则表达式就是这样

/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i

如何在它的任何部分中只允许一个句点?

4

1 回答 1

2

假设您的意思是 @ 之前的部分中最多一个句点,理论上可以使用以下正则表达式执行此操作(它不允许将点作为第一个或最后一个字符,并且不进行任何其他验证):

^[^.]+(\.[^.]+)?$

上面的正则表达式只处理@之前的部分,你必须自己添加正则表达式的其余部分。它基本上匹配一组 1 个或多个非句点字符,后跟一个可选的句点组,然后是 1 个或多个非句点字符。

但是我很好奇为什么您希望将注册限制在其电子邮件地址中最多一个句点的用户...这似乎不是一个明智的限制,因为用户合法拥有超过 1 个句点是非常现实的期间在他们的地址。

于 2012-04-17T00:01:20.083 回答