Ruby正则表达式验证?

3
在Rails应用程序中,我有以下当前的正则表达式验证器:
validates :characters, format: {with: /\A(([a-z0-9])+(-?[a-z0-9]+)*\s?)+\Z/, message: "can't be blank. Characters can only be [a-z 0-9 . # - +]" }

我的字符验证最初只允许小写字母和数字。现在我想允许额外的字符 . # - + 我该如何调整正则表达式呢?


1
你到底在验证什么?此外,你的正则表达式匹配一个可选的“-”以及一个可选的空格。 - Achrome
那么你的意思是 ######## 也是有效的吗? - Jerry
1个回答

6

根据您的问题,如果您想允许 a-z,0-9 和.#-+,则正则表达式如下:

/[a-z0-9.#+\-]/,您的验证代码将类似于以下内容:

validates :characters, format: {with: /[a-z0-9.#+\-]/, message: "can't be blank. Characters can only be [a-z 0-9 . # - +]" }

你甚至可以在http://rubular.com/上尝试一下。在我看来,那是学习Ruby正则表达式的最佳去处。


你可以始终使用\d代替0-9。 - Anshul Mengi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接