Skip to content

Instantly share code, notes, and snippets.

@x43x61x69
Last active March 24, 2018 16:25
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save x43x61x69/8088b5a7375deff4ac323e6933a46aad to your computer and use it in GitHub Desktop.
Save x43x61x69/8088b5a7375deff4ac323e6933a46aad to your computer and use it in GitHub Desktop.
Starbucks (Taiwan) Email Validation RFC 2822 Compliant Fix
// Copyright (C) 2017 Zhi-Wei Cai.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// Inject this into "https://myotgcard.starbucks.com.tw/StarbucksMemberWebsite/SignIn.html"
// in order to bypass the email validation if you use an valid RFC 822
// or RFC 2822 email address that does not accept by the site (usually
// Gmail).
//
// For RFC 2822 compliant regex (which no one should've use anyways):
// (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
// See: http://www.regular-expressions.info/email.html
//
// Copyright (C) 2017 Zhi-Wei Cai. See README for license info.
function validateEmail(str){
if( !str ){
return false;
}
// Original code:
// return str.match(/^[_A-Za-z0-9-]+([.][_A-Za-z0-9-]+)*@[A-Za-z0-9-]+([.][A-Za-z0-9-]+)*$/);
// Since RFC 2822 compliant regex is way too long, let's just bypass the check...
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment