正则表达式、设计和制动器。 Ruby 于 rails 5.2.2

Regex, devise & brakeman. Ruby on rails 5.2.2

我正在使用给定的正则表达式来验证用户名:

validates_format_of :username, with: /^[a-zA-Z0-9_\.]*$/, :multiline => true

来自 运行 brakeman gem 我有以下警告。

== Warnings ==

Confidence: High
Category: Format Validation
Check: ValidationRegex
Message: Insufficient validation for `username` using `/^[a-zA-Z0-9_\.]*$/`. Use `\A` and `\z` as anchors
File: app/models/user.rb
Line: 16

正确分配这些锚点并保持相同字符权限的最佳正则表达式是什么?

正则表达式对我来说还是一个神话! 最好的问候。

来自ruby on rails guides regular expressions

要修复正则表达式,应该使用 \A 和 \z 代替 ^ 和 $,例如

/\A[a-zA-Z0-9_\.]*\z/