diff --git a/app/models/project.rb b/app/models/project.rb
index c298670766744750961bd113f310b3cc3f4dac41..a72a64c94ea8c37d70491ed736cb03e3af325f92 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -64,7 +64,9 @@ class Project < ActiveRecord::Base
   # Validations
   validates :owner, presence: true
   validates :description, length: { within: 0..2000 }
-  validates :name, presence: true, length: { within: 0..255 }
+  validates :name, presence: true, length: { within: 0..255 },
+            format: { with: Gitlab::Regex.project_name_regex,
+                      message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
   validates :path, presence: true, length: { within: 0..255 },
             format: { with: Gitlab::Regex.path_regex,
                       message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
diff --git a/lib/gitlab/regex.rb b/lib/gitlab/regex.rb
index a3f38b1c36012bffdfdff544437017b8158edc4e..e0fb47da17bf7ffdc5b8b2fcb056b63e817a4d85 100644
--- a/lib/gitlab/regex.rb
+++ b/lib/gitlab/regex.rb
@@ -6,6 +6,10 @@ module Gitlab
       default_regex
     end
 
+    def project_name_regex
+      default_regex
+    end
+
     def path_regex
       default_regex
     end