UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

40 lines 4.07 kB
/** * Define a regex to validate a URL * * Discussion: https://gist.github.com/dperini/729294 */ export var urlRegex = new RegExp('^' // protocol identifier + '(?:(?:https?|ftp)://)' // user:pass authentication + '(?:\\S+(?::\\S*)?@)?' + '(?:' // IP address exclusion // private & local networks + '(?!(?:10|127)(?:\\.\\d{1,3}){3})' + '(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})' + '(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})' // IP address dotted notation octets // excludes loopback network 0.0.0.0 // excludes reserved space >= 224.0.0.0 // excludes network & broacast addresses // (first & last IP address of each class) + '(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])' + '(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}' + '(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))' + '|' // host name + '(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)' // domain name + '(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*' // TLD identifier + '(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))' // TLD may end with dot + '\\.?' + ')' // port number + '(?::\\d{2,5})?' // resource path + '(?:[/?#]\\S*)?' + '$', 'i'); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnJlZ2V4LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy9yZWdleC8iLCJzb3VyY2VzIjpbInVybC91cmwucmVnZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FDaEMsR0FBRztJQUNELHNCQUFzQjtNQUNwQix1QkFBdUI7SUFDekIsMkJBQTJCO01BQ3pCLHNCQUFzQjtNQUN0QixLQUFLO0lBQ0wsdUJBQXVCO0lBQ3ZCLDJCQUEyQjtNQUN6QixrQ0FBa0M7TUFDbEMsK0NBQStDO01BQy9DLG9EQUFvRDtJQUN0RCxvQ0FBb0M7SUFDcEMsb0NBQW9DO0lBQ3BDLHVDQUF1QztJQUN2Qyx3Q0FBd0M7SUFDeEMsMENBQTBDO01BQ3hDLHdDQUF3QztNQUN4Qyw0Q0FBNEM7TUFDNUMsZ0RBQWdEO01BQ2xELEdBQUc7SUFDSCxZQUFZO01BQ1YsNERBQTREO0lBQzlELGNBQWM7TUFDWixnRUFBZ0U7SUFDbEUsaUJBQWlCO01BQ2YscUNBQXFDO0lBQ3ZDLHVCQUF1QjtNQUNyQixNQUFNO01BQ1IsR0FBRztJQUNMLGNBQWM7TUFDWixnQkFBZ0I7SUFDbEIsZ0JBQWdCO01BQ2QsZ0JBQWdCO01BQ2xCLEdBQUcsRUFBRSxHQUFHLENBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmaW5lIGEgcmVnZXggdG8gdmFsaWRhdGUgYSBVUkxcbiAqXG4gKiBEaXNjdXNzaW9uOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9kcGVyaW5pLzcyOTI5NFxuICovXG5leHBvcnQgY29uc3QgdXJsUmVnZXggPSBuZXcgUmVnRXhwKFxuICAnXidcbiAgICAvLyBwcm90b2NvbCBpZGVudGlmaWVyXG4gICAgKyAnKD86KD86aHR0cHM/fGZ0cCk6Ly8pJ1xuICAgIC8vIHVzZXI6cGFzcyBhdXRoZW50aWNhdGlvblxuICAgICsgJyg/OlxcXFxTKyg/OjpcXFxcUyopP0ApPydcbiAgICArICcoPzonXG4gICAgICAvLyBJUCBhZGRyZXNzIGV4Y2x1c2lvblxuICAgICAgLy8gcHJpdmF0ZSAmIGxvY2FsIG5ldHdvcmtzXG4gICAgICArICcoPyEoPzoxMHwxMjcpKD86XFxcXC5cXFxcZHsxLDN9KXszfSknXG4gICAgICArICcoPyEoPzoxNjlcXFxcLjI1NHwxOTJcXFxcLjE2OCkoPzpcXFxcLlxcXFxkezEsM30pezJ9KSdcbiAgICAgICsgJyg/ITE3MlxcXFwuKD86MVs2LTldfDJcXFxcZHwzWzAtMV0pKD86XFxcXC5cXFxcZHsxLDN9KXsyfSknXG4gICAgICAvLyBJUCBhZGRyZXNzIGRvdHRlZCBub3RhdGlvbiBvY3RldHNcbiAgICAgIC8vIGV4Y2x1ZGVzIGxvb3BiYWNrIG5ldHdvcmsgMC4wLjAuMFxuICAgICAgLy8gZXhjbHVkZXMgcmVzZXJ2ZWQgc3BhY2UgPj0gMjI0LjAuMC4wXG4gICAgICAvLyBleGNsdWRlcyBuZXR3b3JrICYgYnJvYWNhc3QgYWRkcmVzc2VzXG4gICAgICAvLyAoZmlyc3QgJiBsYXN0IElQIGFkZHJlc3Mgb2YgZWFjaCBjbGFzcylcbiAgICAgICsgJyg/OlsxLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMDFdXFxcXGR8MjJbMC0zXSknXG4gICAgICArICcoPzpcXFxcLig/OjE/XFxcXGR7MSwyfXwyWzAtNF1cXFxcZHwyNVswLTVdKSl7Mn0nXG4gICAgICArICcoPzpcXFxcLig/OlsxLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMC00XVxcXFxkfDI1WzAtNF0pKSdcbiAgICArICd8J1xuICAgICAgLy8gaG9zdCBuYW1lXG4gICAgICArICcoPzooPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0tKikqW2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKyknXG4gICAgICAvLyBkb21haW4gbmFtZVxuICAgICAgKyAnKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0tKikqW2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKykqJ1xuICAgICAgLy8gVExEIGlkZW50aWZpZXJcbiAgICAgICsgJyg/OlxcXFwuKD86W2EtelxcXFx1MDBhMS1cXFxcdWZmZmZdezIsfSkpJ1xuICAgICAgLy8gVExEIG1heSBlbmQgd2l0aCBkb3RcbiAgICAgICsgJ1xcXFwuPydcbiAgICArICcpJ1xuICAgIC8vIHBvcnQgbnVtYmVyXG4gICAgKyAnKD86OlxcXFxkezIsNX0pPydcbiAgICAvLyByZXNvdXJjZSBwYXRoXG4gICAgKyAnKD86Wy8/I11cXFxcUyopPydcbiAgKyAnJCcsICdpJyxcbik7XG4iXX0=