首页 > 解决方案 > 正则表达式,设计和刹车。Ruby on rails 5.2.2

问题描述

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

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

通过运行brakemangem,我收到以下警告。

== 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-railsregexdevisebrakeman

解决方案


ruby​​ on rails 引导正则表达式

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

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


推荐阅读