WordPress.org

Make WordPress Core

Ticket #30966: 30966.14.patch

File 30966.14.patch, 2.5 KB (added by iseulde, 6 years ago)
  • src/wp-admin/js/word-count.js

     
    1414                shortcodes = this.settings.l10n.shortcodes;
    1515
    1616                if ( shortcodes && shortcodes.length ) {
    17                         this.settings.shortcodesRegExp = new RegExp( '\\[\\/?(?:' + shortcodes.join( '|' ) + ')[^\\]]*?\\]', 'gi' );
     17                        this.settings.shortcodesRegExp = new RegExp( '\\[\\/?(?:' + shortcodes.join( '|' ) + ')[^\\]]*?\\]', 'g' );
    1818                }
    1919        }
    2020
    2121        WordCounter.prototype.settings = {
    2222                HTMLRegExp: /<\/?[a-z][^>]*?>/gi,
     23                HTMLcommentRegExp: /<!--[\s\S]*?-->/g,
    2324                spaceRegExp: /&nbsp;|&#160;/gi,
    24                 connectorRegExp: /--|\u2014/gi,
     25                HTMLEntityRegExp: /&\S+?;/g,
     26                connectorRegExp: /--|\u2014/g,
    2527                removeRegExp: new RegExp( [
    2628                        '[',
    2729                                // Basic Latin (extract)
     
    6062                astralRegExp: /[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
    6163                wordsRegExp: /\S\s+/g,
    6264                charactersRegExp: /\S/g,
    63                 allRegExp: /[^\f\n\r\t\v\u00ad\u2028\u2029]/g,
     65                allRegExp: /[^\f\n\r\t\v\u00AD\u2028\u2029]/g,
    6466                l10n: window.wordCountL10n || {}
    6567        };
    6668
     
    7375                        text = text + '\n';
    7476
    7577                        text = text.replace( this.settings.HTMLRegExp, '\n' );
     78                        text = text.replace( this.settings.HTMLcommentRegExp, '' );
    7679
    7780                        if ( this.settings.shortcodesRegExp ) {
    7881                                text = text.replace( this.settings.shortcodesRegExp, '\n' );
     
    8184                        text = text.replace( this.settings.spaceRegExp, ' ' );
    8285
    8386                        if ( type === 'words' ) {
     87                                text = text.replace( this.settings.HTMLEntityRegExp, '' );
    8488                                text = text.replace( this.settings.connectorRegExp, ' ' );
    8589                                text = text.replace( this.settings.removeRegExp, '' );
    8690                        } else {
     91                                text = text.replace( this.settings.HTMLEntityRegExp, 'a' );
    8792                                text = text.replace( this.settings.astralRegExp, 'a' );
    8893                        }
    8994
  • tests/qunit/wp-admin/js/word-count.js

     
    5858                                words: 1,
    5959                                characters: 1,
    6060                                all: 1
     61                        },
     62                        {
     63                                message: 'HTML comment.',
     64                                string: 'one<!-- comment -->two three',
     65                                words: 2,
     66                                characters: 11,
     67                                all: 12
     68                        },
     69                        {
     70                                message: 'HTML entity.',
     71                                string: '&gt; test',
     72                                words: 1,
     73                                characters: 5,
     74                                all: 6
    6175                        }
    6276                ], function( test ) {
    6377                        _.each( [ 'words', 'characters', 'all' ], function( type ) {