src/cm/media/js/lib/yui/yui3-3.15.0/build/escape/escape-debug.js
author ymh <ymh.work@gmail.com>
Fri, 14 Mar 2014 13:16:10 +0100
changeset 611 fa66f4bb1563
parent 602 e16a97fb364a
permissions -rw-r--r--
add some more custom config and put every thing in comment in the custom.yaml template
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('escape', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
Provides utility methods for escaping strings.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
@module escape
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
@class Escape
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
@since 3.3.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
var HTML_CHARS = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
        '&': '&amp;',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
        '<': '&lt;',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
        '>': '&gt;',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
        '"': '&quot;',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
        "'": '&#x27;',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
        '/': '&#x2F;',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
        '`': '&#x60;'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
Escape = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
    // -- Public Static Methods ------------------------------------------------
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
    Returns a copy of the specified string with special HTML characters
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
    escaped. The following characters will be converted to their
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
    corresponding character entities:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
        & < > " ' / `
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
    This implementation is based on the [OWASP HTML escaping
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
    recommendations][1]. In addition to the characters in the OWASP
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
    recommendations, we also escape the <code>&#x60;</code> character, since IE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
    interprets it as an attribute delimiter.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
    If _string_ is not already a string, it will be coerced to a string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
    [1]: http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
    @method html
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
    @param {String} string String to escape.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    @return {String} Escaped string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
    @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
    html: function (string) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
        return (string + '').replace(/[&<>"'\/`]/g, Escape._htmlReplacer);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
    Returns a copy of the specified string with special regular expression
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
    characters escaped, allowing the string to be used safely inside a regex.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
    The following characters, and all whitespace characters, are escaped:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
        - $ ^ * ( ) + [ ] { } | \ , . ?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
    If _string_ is not already a string, it will be coerced to a string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
    @method regex
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
    @param {String} string String to escape.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
    @return {String} Escaped string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
    @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
    regex: function (string) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
        // There's no need to escape !, =, and : since they only have meaning
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
        // when they follow a parenthesized ?, as in (?:...), and we already
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
        // escape parens and question marks.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
        return (string + '').replace(/[\-$\^*()+\[\]{}|\\,.?\s]/g, '\\$&');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
    // -- Protected Static Methods ---------------------------------------------
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
     * Regex replacer for HTML escaping.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
     * @method _htmlReplacer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
     * @param {String} match Matched character (must exist in HTML_CHARS).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
     * @return {String} HTML entity.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
    _htmlReplacer: function (match) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
        return HTML_CHARS[match];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
Escape.regexp = Escape.regex;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
Y.Escape = Escape;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
}, '@VERSION@', {"requires": ["yui-base"]});