/**
 * Validates that the value is a proper URL.
 */
Ext.define('Ext.data.validator.Url', {
    extend: 'Ext.data.validator.Format',
    alias: 'data.validator.url',
 
    type: 'url',
 
    /**
     * @cfg {String} message
     * The error message to return when the value is not a valid URL.
     * @locale
     */
    message: 'Is not a valid URL',
 
    // URL validator that works is non-trivial
    // There are numerous examples online but not all pass rigoruous test:
    //      https://mathiasbynens.be/demo/url-regex
    // The only one that looks to be comprehensive and bulletproof is this one:
    //      https://gist.github.com/dperini/729294
    //      which requires inclusion of a copyright header
 
    /**
     * @cfg {RegExp} matcher
     * A matcher to check for simple Urls. This may be overridden.
     */
    /* eslint-disable-next-line no-useless-escape */
    matcher: /^(http:\/\/|https:\/\/|ftp:\/\/|\/\/)([-a-zA-Z0-9@:%_\+.~#?&//=])+$/
});