Решение на Четвърта задача от Георги Гърдев

Обратно към всички решения

Към профила на Георги Гърдев

Резултати

  • 3 точки от тестове
  • 0 бонус точки
  • 3 точки общо
  • 18 успешни тест(а)
  • 23 неуспешни тест(а)

Код

module ValidationExpressions
VALID_HOSTNAME = /(([0-9a-zA-Z]|[0-9a-zA-Z][0-9a-zA-Z-]{,60}[0-9a-zA-Z]\.)+)([a-zA-Z]{2,3}(\.[a-zA-Z]{2,3}))/
VALID_EMAIL_NAME = /([0-9a-zA-Z][0-9a-zA-Z_.+-]{,200})@/
VALID_EMAIL = Regexp.new VALID_EMAIL_NAME.to_s + VALID_HOSTNAME.to_s
VALID_IP = /((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])/
VALID_NUMBER = /-?(0(\.\d+)?|[1-9]|[1-9][0-9.]*\d)/
VALID_INTEGER = /-?(0|[1-9]\d*)/
VALID_DATE = /(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])/
VALID_TIME = /([01]\d|2[0-3]):([0-5]\d):([0-5]\d)/
VALID_PHONE = /(0|((00|\+)[1-9]\d{,2}))([ ()-]*?)((\d([ ()-]{,2})){6,10}\d)/
def self.full_match(regexp)
Regexp.new("^" + regexp.to_s + "$")
end
end
class Validations
include ValidationExpressions
def self.email?(value)
expression = ValidationExpressions.full_match VALID_EMAIL_NAME.to_s + VALID_HOSTNAME.to_s
not value.match(expression).nil?
end
def self.hostname?(value)
expression = ValidationExpressions.full_match VALID_HOSTNAME
not value.match(expression).nil?
end
def self.phone?(value)
expression = ValidationExpressions.full_match VALID_PHONE
not value.match(expression).nil?
end
def self.ip_address?(value)
expression = ValidationExpressions.full_match VALID_IP
not value.match(expression).nil?
end
def self.number?(value)
expression = ValidationExpressions.full_match VALID_NUMBER
not value.match(expression).nil?
end
def self.integer?(value)
expression = ValidationExpressions.full_match VALID_INTEGER
not value.match(expression).nil?
end
def self.date?(value)
expression = ValidationExpressions.full_match VALID_DATE
not value.match(expression).nil?
end
def self.time?(value)
expression = ValidationExpressions.full_match VALID_TIME
not value.match(expression).nil?
end
def self.date_time?(value)
expression = ValidationExpressions.full_match VALID_DATE.to_s + "[T ]" + VALID_TIME.to_s
not value.match(expression).nil?
end
end

Лог от изпълнението

▸ Покажи лога

История (1 версия и 0 коментара)

Георги обнови решението на 27.11.2012 23:52 (преди над 12 години)

▸ Покажи разликите
+module ValidationExpressions
+ VALID_HOSTNAME = /(([0-9a-zA-Z]|[0-9a-zA-Z][0-9a-zA-Z-]{,60}[0-9a-zA-Z]\.)+)([a-zA-Z]{2,3}(\.[a-zA-Z]{2,3}))/
+ VALID_EMAIL_NAME = /([0-9a-zA-Z][0-9a-zA-Z_.+-]{,200})@/
+ VALID_EMAIL = Regexp.new VALID_EMAIL_NAME.to_s + VALID_HOSTNAME.to_s
+ VALID_IP = /((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])/
+ VALID_NUMBER = /-?(0(\.\d+)?|[1-9]|[1-9][0-9.]*\d)/
+ VALID_INTEGER = /-?(0|[1-9]\d*)/
+ VALID_DATE = /(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])/
+ VALID_TIME = /([01]\d|2[0-3]):([0-5]\d):([0-5]\d)/
+ VALID_PHONE = /(0|((00|\+)[1-9]\d{,2}))([ ()-]*?)((\d([ ()-]{,2})){6,10}\d)/
+
+ def self.full_match(regexp)
+ Regexp.new("^" + regexp.to_s + "$")
+ end
+end
+
+class Validations
+ include ValidationExpressions
+
+ def self.email?(value)
+ expression = ValidationExpressions.full_match VALID_EMAIL_NAME.to_s + VALID_HOSTNAME.to_s
+ not value.match(expression).nil?
+ end
+
+ def self.hostname?(value)
+ expression = ValidationExpressions.full_match VALID_HOSTNAME
+ not value.match(expression).nil?
+ end
+
+ def self.phone?(value)
+ expression = ValidationExpressions.full_match VALID_PHONE
+ not value.match(expression).nil?
+ end
+
+ def self.ip_address?(value)
+ expression = ValidationExpressions.full_match VALID_IP
+ not value.match(expression).nil?
+ end
+
+ def self.number?(value)
+ expression = ValidationExpressions.full_match VALID_NUMBER
+ not value.match(expression).nil?
+ end
+
+ def self.integer?(value)
+ expression = ValidationExpressions.full_match VALID_INTEGER
+ not value.match(expression).nil?
+ end
+
+ def self.date?(value)
+ expression = ValidationExpressions.full_match VALID_DATE
+ not value.match(expression).nil?
+ end
+
+ def self.time?(value)
+ expression = ValidationExpressions.full_match VALID_TIME
+ not value.match(expression).nil?
+ end
+
+ def self.date_time?(value)
+ expression = ValidationExpressions.full_match VALID_DATE.to_s + "[T ]" + VALID_TIME.to_s
+ not value.match(expression).nil?
+ end
+end