-// Word count
+
(function($) {
wpWordCount = {
- init : function() {
- var t = this, last = 0, co = $('#content');
-
- $('#wp-word-count').html( wordCountL10n.count.replace( /%d/, '<span id="word-count">0</span>' ) );
- t.block = 0;
- t.wc(co.val());
- co.keyup( function(e) {
- if ( e.keyCode == last ) return true;
- if ( 13 == e.keyCode || 8 == last || 46 == last ) t.wc(co.val());
- last = e.keyCode;
- return true;
- });
+ settings : {
+ strip : /<[a-zA-Z\/][^<>]*>/g, // strip HTML tags
+ clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc.
+ count : /\S\s+/g // counting regexp
},
+ block : 0,
+
wc : function(tx) {
- var t = this, w = $('#word-count'), tc = 0;
+ var t = this, w = $('.word-count'), tc = 0;
+
+ if ( t.block )
+ return;
- if ( t.block ) return;
t.block = 1;
setTimeout( function() {
if ( tx ) {
- tx = tx.replace( /<.[^<>]*?>/g, ' ' ).replace( / | /gi, ' ' );
- tx = tx.replace( /[0-9.(),;:!?%#$¿'"_+=\\/-]*/g, '' );
- tx.replace( /\S\s+/g, function(){tc++;} );
+ tx = tx.replace( t.settings.strip, ' ' ).replace( / | /gi, ' ' );
+ tx = tx.replace( t.settings.clean, '' );
+ tx.replace( t.settings.count, function(){tc++;} );
}
w.html(tc.toString());
}
}
- $(document).ready( function(){ wpWordCount.init(); } );
+ $(document).bind( 'wpcountwords', function(e, txt) {
+ wpWordCount.wc(txt);
+ });
}(jQuery));