diff options
| author | Caitlin Potter | 2014-01-21 21:19:31 -0500 | 
|---|---|---|
| committer | Caitlin Potter | 2014-01-21 21:40:55 -0500 | 
| commit | 79e519fedaec54390a8bdacfb1926bfce57a1eb6 (patch) | |
| tree | c26cecaf9a3c91d41cc069771ee116bb88a337bf | |
| parent | 7cf5544a9f5bea443ccac2143765154760ceaff9 (diff) | |
| download | angular.js-79e519fedaec54390a8bdacfb1926bfce57a1eb6.tar.bz2 | |
fix(input): use Chromium's email validation regexp
This change uses the regexp from Chromium/Blink to validate emails, and corrects
an error in the validation engine, which previously considered an invalid email
to be valid. Additionally, the regexp was invalidating emails with capital
letters, however this is not the behaviour recomended in the spec, or implemented
in Chromium.
Closes #5899
Closes #5924
| -rw-r--r-- | src/ng/directive/input.js | 2 | ||||
| -rw-r--r-- | test/ng/directive/inputSpec.js | 3 | 
2 files changed, 3 insertions, 2 deletions
| diff --git a/src/ng/directive/input.js b/src/ng/directive/input.js index 706844eb..53a8ddd4 100644 --- a/src/ng/directive/input.js +++ b/src/ng/directive/input.js @@ -9,7 +9,7 @@  */  var URL_REGEXP = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/; -var EMAIL_REGEXP = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$/; +var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-z0-9-]+(\.[a-z0-9-]+)*$/i;  var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;  var inputType = { diff --git a/test/ng/directive/inputSpec.js b/test/ng/directive/inputSpec.js index 26abceae..668fa0b5 100644 --- a/test/ng/directive/inputSpec.js +++ b/test/ng/directive/inputSpec.js @@ -944,7 +944,8 @@ describe('input', function() {        it('should validate email', function() {          expect(EMAIL_REGEXP.test('a@b.com')).toBe(true);          expect(EMAIL_REGEXP.test('a@b.museum')).toBe(true); -        expect(EMAIL_REGEXP.test('a@B.c')).toBe(false); +        expect(EMAIL_REGEXP.test('a@B.c')).toBe(true); +        expect(EMAIL_REGEXP.test('a@.b.c')).toBe(false);        });      });    }); | 
