Próbuję napisać wyrażenie regularne w Ruby (Rails), tak aby znaki nazwy użytkownika zawierały tylko cyfry i litery (również bez spacji).Próbuję napisać REGEX dla sprawdzania poprawności nazwy użytkownika w Railsach
Mam to wyrażenie regularne, /^[a-zA-Z0-9]+$/
, ale wygląda na to, że nie działa i pojawia się błąd w Railsach, który mówi "Podane wyrażenie regularne używa zakotwiczeń wielowierszowych (^ lub $), które mogą stanowić zagrożenie bezpieczeństwa Czy chciałeś użyć \ A i \ z, lub zapomniałeś dodać: multiline => true option? "
mój pełny kod dla tej implementacji w moim modelu user.rb jest:
class User < ActiveRecord::Base
before_save { self.email = email.downcase }
validates :name, presence: true, length: { maximum: 50 }
VALID_USERNAME_REGEX = /^[a-zA-Z0-9]+$/
validates :username, presence: true, length: { maximum: 20 },
format: { with: VALID_USERNAME_REGEX },
uniqueness: { case_sensitive: false }
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
has_secure_password
validates :password, length: { minimum: 6 }
end
Co robię źle i jak mogę rozwiązać ten regex tak, że tylko jest ważna dla liczb i liter i bez spacji ? Dzięki.
Dzięki temu zadziałało! – jtarr523