diff --git a/core/src/tools/validation-util.ts b/core/src/tools/validation-util.ts index 1ad3e62f77..01a1862d4f 100644 --- a/core/src/tools/validation-util.ts +++ b/core/src/tools/validation-util.ts @@ -34,7 +34,7 @@ export function validateUnsignedFloat(value: string): boolean { export function validateUrl(url: string): boolean { const urlRegex = - /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$/; + /^https?:\/\/(localhost|(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6})([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$/; const result = url.match(urlRegex); return result !== null && result[0] === url; diff --git a/core/test/tools/validation-util.spec.ts b/core/test/tools/validation-util.spec.ts index e9f23e45e6..daf37c2d32 100644 --- a/core/test/tools/validation-util.spec.ts +++ b/core/test/tools/validation-util.spec.ts @@ -71,6 +71,9 @@ describe('ValidationUril', () => { expect(validateUrl('http://www.example.de')).toBe(true); expect(validateUrl('https://www.example.de')).toBe(true); + expect(validateUrl('http://localhost:4000')).toBe(true); + expect(validateUrl('http://example.de')).toBe(true); + expect(validateUrl('http://abc')).toBe(false); expect(validateUrl('www.example.de')).toBe(false); expect(validateUrl('abc')).toBe(false); });