rails 4 中的用户名正则表达式
username regex in rails 4
我有一个带有用户名属性的用户模型,一切正常,但如何在用户名上制作正则表达式,以便它只接受字母数字和 _。
提前致谢
你可以使用这个正则表达式:
^(\w|\.)+$
与以下相同:
^[a-zA-Z0-9_\.]+$
Here's preview of the regex in action 在 regex101.com 上,这是它的细分
^
匹配字符串的开头
(
只是将字符分组以便可以应用修饰符
\w
匹配任何字符 a-z
, A-Z
, 0-9
,以及_
。使其与 [a-zA-Z0-9_]
. 相同
|
是 OR 字符,因此可以找到它后面或前面的匹配项。
\.
按字面意思匹配 .
.
)
结束字符组
+
使前一个字符组匹配一次或多次
$
匹配字符串结尾
如果你想禁止在用户名的开头和结尾使用 .
和 _
,你可以使用:
^[a-zA-Z0-9](\w|\.)*[a-zA-Z0-9]$
确保使用 :multiline => true
选项,以避免错误。
:multiline => true must be added on the username form text_field as this:
validates :username, presence: true, length: {minimum: 3, maximum: 20 },
format: { with: /\A[a-zA-Z0-9]+\z/, message: 'cannot have special characters' },
uniqueness: { case_sensitive: false }
on form: <%= f.text_field :name, class: "form-control", placeholder: " Please Enter Full Name ", autofocus: true, :multiline => true %>
我有一个带有用户名属性的用户模型,一切正常,但如何在用户名上制作正则表达式,以便它只接受字母数字和 _。 提前致谢
你可以使用这个正则表达式:
^(\w|\.)+$
与以下相同:
^[a-zA-Z0-9_\.]+$
Here's preview of the regex in action 在 regex101.com 上,这是它的细分
^
匹配字符串的开头(
只是将字符分组以便可以应用修饰符\w
匹配任何字符a-z
,A-Z
,0-9
,以及_
。使其与[a-zA-Z0-9_]
. 相同
|
是 OR 字符,因此可以找到它后面或前面的匹配项。\.
按字面意思匹配.
.)
结束字符组+
使前一个字符组匹配一次或多次$
匹配字符串结尾
如果你想禁止在用户名的开头和结尾使用 .
和 _
,你可以使用:
^[a-zA-Z0-9](\w|\.)*[a-zA-Z0-9]$
确保使用 :multiline => true
选项,以避免错误。
:multiline => true must be added on the username form text_field as this:
validates :username, presence: true, length: {minimum: 3, maximum: 20 },
format: { with: /\A[a-zA-Z0-9]+\z/, message: 'cannot have special characters' },
uniqueness: { case_sensitive: false }
on form: <%= f.text_field :name, class: "form-control", placeholder: " Please Enter Full Name ", autofocus: true, :multiline => true %>