foop
Version:
interfaces that describe their intentions.
26 lines (23 loc) • 3.37 kB
JavaScript
var isStringPrimitive = require('../is/stringPrimitive')
var matchUrl = require('../regexp/matchUrl')
/**
* @TODO var urlRegExp = /^(?:(?:https?|ftp):\/\/)?(?:(?!(?: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})(?:[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]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/i
*
* @see https://github.com/arasatasaygin/is.js
* @see http://mathiasbynens.be/demo/url-regex
* @see https://github.com/chriso/validator.js/blob/master/src/lib/isURL.js
* @see https://stackoverflow.com/questions/38704811/javascript-isurl-function
* @see https://github.com/jquery-validation/jquery-validation
*
* @since 5.0.0-beta.5
*
* @param {string | *} x possible url
* @return {boolean}
*/
function isUrl(x) {
if (!isStringPrimitive(x)) { return false }
else if (matchUrl.test(x)) { return true }
else { return false }
}
module.exports = isUrl
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLmpzIiwic291cmNlcyI6WyJ1cmwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNTdHJpbmdQcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pcy9zdHJpbmdQcmltaXRpdmUnKVxuY29uc3QgbWF0Y2hVcmwgPSByZXF1aXJlKCcuLi9yZWdleHAvbWF0Y2hVcmwnKVxuXG4vKipcbiAqIEBUT0RPIHZhciB1cmxSZWdFeHAgPSAvXig/Oig/Omh0dHBzP3xmdHApOlxcL1xcLyk/KD86KD8hKD86MTB8MTI3KSg/OlxcLlxcZHsxLDN9KXszfSkoPyEoPzoxNjlcXC4yNTR8MTkyXFwuMTY4KSg/OlxcLlxcZHsxLDN9KXsyfSkoPyExNzJcXC4oPzoxWzYtOV18MlxcZHwzWzAtMV0pKD86XFwuXFxkezEsM30pezJ9KSg/OlsxLTldXFxkP3wxXFxkXFxkfDJbMDFdXFxkfDIyWzAtM10pKD86XFwuKD86MT9cXGR7MSwyfXwyWzAtNF1cXGR8MjVbMC01XSkpezJ9KD86XFwuKD86WzEtOV1cXGQ/fDFcXGRcXGR8MlswLTRdXFxkfDI1WzAtNF0pKXwoPzooPzpbYS16XFx1MDBhMS1cXHVmZmZmMC05XS0qKSpbYS16XFx1MDBhMS1cXHVmZmZmMC05XSspKD86XFwuKD86W2EtelxcdTAwYTEtXFx1ZmZmZjAtOV0tKikqW2EtelxcdTAwYTEtXFx1ZmZmZjAtOV0rKSooPzpcXC4oPzpbYS16XFx1MDBhMS1cXHVmZmZmXXsyLH0pKSkoPzo6XFxkezIsNX0pPyg/OlxcL1xcUyopPyQvaVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2FyYXNhdGFzYXlnaW4vaXMuanNcbiAqIEBzZWUgaHR0cDovL21hdGhpYXNieW5lbnMuYmUvZGVtby91cmwtcmVnZXhcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2Nocmlzby92YWxpZGF0b3IuanMvYmxvYi9tYXN0ZXIvc3JjL2xpYi9pc1VSTC5qc1xuICogQHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zODcwNDgxMS9qYXZhc2NyaXB0LWlzdXJsLWZ1bmN0aW9uXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnktdmFsaWRhdGlvbi9qcXVlcnktdmFsaWRhdGlvblxuICpcbiAqIEBzaW5jZSA1LjAuMC1iZXRhLjVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8ICp9IHggcG9zc2libGUgdXJsXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc1VybCh4KSB7XG4gIGlmICghaXNTdHJpbmdQcmltaXRpdmUoeCkpIHJldHVybiBmYWxzZVxuICBlbHNlIGlmIChtYXRjaFVybC50ZXN0KHgpKSByZXR1cm4gdHJ1ZVxuICBlbHNlIHJldHVybiBmYWxzZVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzVXJsXG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDO0FBQzFEQSxHQUFLLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQWdCOUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO0VBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFBLE9BQU8sS0FBSyxFQUFBO09BQ2xDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFBLE9BQU8sSUFBSSxFQUFBO09BQ2pDLEVBQUEsT0FBTyxLQUFLLEVBQUE7Q0FDbEI7O0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLOyJ9