diff --git a/package.json b/package.json index 45f9364..014cca3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ng2-validation", - "version": "3.6.0", + "version": "3.6.1", "description": "angular2 validation", "main": "dist/index.js", "typings": "dist/index.d.ts", diff --git a/src/custom-validators.ts b/src/custom-validators.ts index 8bccc0a..e4611bc 100644 --- a/src/custom-validators.ts +++ b/src/custom-validators.ts @@ -262,7 +262,7 @@ export class CustomValidators { 'pt-PT': /^(\+351)?9[1236]\d{7}$/, 'el-GR': /^(\+?30)?(69\d{8})$/, 'en-GB': /^(\+?44|0)7\d{9}$/, - 'en-US': /^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/, + 'en-US': /^(\(?[0-9]{3}\)?)((\s|\-){1})?[0-9]{3}((\s|\-){1})?[0-9]{4}$/, 'en-ZM': /^(\+26)?09[567]\d{7}$/, 'ru-RU': /^(\+?7|8)?9\d{9}$/, 'nb-NO': /^(\+?47)?[49]\d{7}$/, diff --git a/src/specs/custom-validators.spec.ts b/src/specs/custom-validators.spec.ts index 390f67e..be1274d 100644 --- a/src/specs/custom-validators.spec.ts +++ b/src/specs/custom-validators.spec.ts @@ -613,4 +613,37 @@ describe('Custom Validators phone,', () => { }); }); + + describe('locale: en-US,', () => { + + beforeEach(() => { + validator = CustomValidators.phone("en-US"); + }); + + function phoneDataProvider() { + return [ + {phone: '888 555 2112', valid: true}, + {phone: '888 555 2112', valid: true}, + {phone: '(888) 555-2112', valid: true}, + {phone: '(888) 555 2112', valid: true}, + {phone: '888-555-2112', valid: true}, + {phone: '888-555 2112', valid: true}, + {phone: '8885552112', valid: true} + ] + } + + using(phoneDataProvider, (data) => { + let testCase = data.phone + ' should be ' + (data.valid ? 'valid' : 'invalid'); + + it(testCase, () => { + control = new FormControl(data.phone); + + if (data.valid) + return expect(validator(control)).toBeNull(); + + expect(validator(control)).toEqual(error); + }) + }); + + }); });