首页 > 解决方案 > 指令“name =~ /[AZ].*/”是什么意思?

问题描述

我正在研究 ruby​​ on rails 并且正在查看代码,但我无法理解它实际上是如何工作的。

''''红宝石

validate: first_letter_must_be_uppercase

private

def first_letter_must_be_uppercase

   errors.add ("name", "first letter must be uppercase") unless name =~ /[A-Z].*/

end

标签: ruby-on-rails

解决方案


该代码基本上是使用正则表达式检查字符串是否应包含大写的第一个字母

解释:

/[A-Z].*/
  • [A-Z]- 检查从 A 到 Z 的任何大写字母
  • .- 检查任何通配符
  • *- 匹配 0 到任意数量的重复。

总结一下

输入字符串应符合以下格式 - 来自 AZ 的大写字母,然后应包含 0 到任意数量的通配符

您可以在Rubular上查看

编辑

正如@vasfed 所指出的,如果您想匹配正则表达式需要更改为的第一个字符

/\A[A-Z].*/

\A- 确保字符串的开始


推荐阅读