Last active
October 5, 2018 19:53
-
-
Save volfegan/131b9b5edfbfa82fdb56873cde15ccb9 to your computer and use it in GitHub Desktop.
Validate an URL string using regular expression (javascript) return => true|false
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function is_url(url_str) { | |
// Regular Expression for URL validation created by Diego Perini | |
//from https://gist.github.com/dperini/729294 | |
// Author: Daniel L. Lacerda | |
// Created: 2018/09/21 | |
// Updated: - | |
// License: MIT | |
let isValidURL = new RegExp( | |
"^" + | |
// protocol identifier (optional) | |
// short syntax // still required | |
"(?:(?:(?:https?|ftp):)?\\/\\/)" + | |
// user:pass BasicAuth (optional) | |
"(?:\\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 & domain names, may end with dot | |
// can be replaced by a shortest alternative | |
// (?![-_])(?:[-\\w\\u00a1-\\uffff]{0,63}[^-_]\\.)+ | |
"(?:" + | |
"(?:" + | |
"[a-z0-9\\u00a1-\\uffff]" + | |
"[a-z0-9\\u00a1-\\uffff_-]{0,62}" + | |
")?" + | |
"[a-z0-9\\u00a1-\\uffff]\\." + | |
")+" + | |
// TLD identifier name, may end with dot | |
"(?:[a-z\\u00a1-\\uffff]{2,}\\.?)" + | |
")" + | |
// port number (optional) | |
"(?::\\d{2,5})?" + | |
// resource path (optional) | |
"(?:[/?#]\\S*)?" + | |
"$", "i" | |
); | |
return isValidURL.test(url_str); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment