1. simplify regex for email testing

2. keep valid emails in text area
This commit is contained in:
Jlit1001 2015-10-14 22:29:15 -07:00
parent e0be8e94ea
commit a788533d13
2 changed files with 9 additions and 4 deletions
app
templates/account
views/account

View file

@ -152,7 +152,7 @@ block content
else
if emailValidator.state === 'invalid'
div.invalid-email-message(aria-hidden="true") please make sure all entries are valid emails
textarea.recipient-emails(rows=3, data-i18n="[placeholder]subscribe.recipient_emails_placeholder")
textarea.recipient-emails(rows=3, data-i18n="[placeholder]subscribe.recipient_emails_placeholder")=emailValidator.emailString()
div
button.recipients-subscribe-button.btn.btn-lg.btn-success(data-i18n="subscribe.subscribe_users")
if recipientSubs.state === 'declined'

View file

@ -110,11 +110,16 @@ module.exports = class SubscriptionView extends RootView
class EmailValidator
validateEmails: (emails, render) ->
emailRegex = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i
@validEmails = (emailRegex.test(email.trim().toLowerCase()) for email in emails)
return @emailsInvalid(render) if _.contains(@validEmails, false)
#taken from http://www.regular-expressions.info/email.html
emailRegex = /[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}/
@validEmails = (email for email in emails when emailRegex.test(email.trim().toLowerCase()))
return @emailsInvalid(render) if @validEmails.length < emails.length
return @emailsValid(render)
emailString: ->
return unless @validEmails
return @validEmails.join('\n')
emailsInvalid: (render) ->
@state = "invalid"
render()