mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
[ruby/uri] lib/uri/mailto.rb (EMAIL_REGEXP): use assertions surrounding the local part instead of a character class
2d7d2d9988
This commit is contained in:
parent
0685e8caf9
commit
c97eba9bcd
2 changed files with 10 additions and 1 deletions
|
@ -52,7 +52,7 @@ module URI
|
|||
HEADER_REGEXP = /\A(?<hfield>(?:%\h\h|[!$'-.0-;@-Z_a-z~])*=(?:%\h\h|[!$'-.0-;@-Z_a-z~])*)(?:&\g<hfield>)*\z/
|
||||
# practical regexp for email address
|
||||
# https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
|
||||
EMAIL_REGEXP = /\A[^.][a-zA-Z0-9.!\#$%&'*+\/=?^_`{|}~-]+[^.]@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\z/
|
||||
EMAIL_REGEXP = /\A(?!\.)[a-zA-Z0-9.!\#$%&'*+\/=?^_`{|}~-]+(?<!\.)@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\z/
|
||||
# :startdoc:
|
||||
|
||||
#
|
||||
|
|
|
@ -141,6 +141,11 @@ class URI::TestMailTo < Test::Unit::TestCase
|
|||
def test_check_to
|
||||
u = URI::MailTo.build(['joe@example.com', 'subject=Ruby'])
|
||||
|
||||
# Valid emails
|
||||
u.to = 'a@valid.com'
|
||||
assert_equal(u.to, 'a@valid.com')
|
||||
|
||||
# Invalid emails
|
||||
assert_raise(URI::InvalidComponentError) do
|
||||
u.to = '#1@mail.com'
|
||||
end
|
||||
|
@ -156,6 +161,10 @@ class URI::TestMailTo < Test::Unit::TestCase
|
|||
assert_raise(URI::InvalidComponentError) do
|
||||
u.to = 'hello.@invalid.email'
|
||||
end
|
||||
|
||||
assert_raise(URI::InvalidComponentError) do
|
||||
u.to = 'n.@invalid.email'
|
||||
end
|
||||
end
|
||||
|
||||
def test_to_s
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue