Wikipedia:AutoEd/tablestowikitext.js

//From Plastikspork's script

function autoEdTablestoWikitext(str) { //MAIN FUNCTION describes list of fixes

// Remove newlines from inside table specific tags var loopcount = 0; while( str.search(/(?:<\/?table|<\/?tr|<\/?td|<\/?th)[^<>]*[\r\n]/gi) >= 0 && loopcount <= 10 ) { str.replace(/((?:<\/?table|<\/?tr|<\/?td|<\/?th)[^<>]*)[\r\n]/gi, '$1 ') loopcount++; } // Remove extra whitespace from inside table specific tags str=str.replace(/( str=str.replace(/(<\/table|<\/tr|<\/td|<\/th)[^<>]+(>)/gim, '$1$2'); // Remove space whitespace after, , , str=str.replace(/[\s]+(<\/table>|]*>|]*>|]*>)/gim, '$1'); // Replace ' ' with '|}' str=str.replace(/[\s]*<\/table>/gi, '\n|}'); // Replace ' ' with '||' str=str.replace(/<\/td[\s]*>[\s]*/gim, '||'); str=str.replace(/<\/td[\s]*>[\s]*]+)>/gim, '|| $1 |'); // Replace ' ' with '!!' str=str.replace(/<\/th[\s]*>[\s]*/gim, '!!'); str=str.replace(/<\/th[\s]*>[\s]*]+)>/gim, '!! $1 |'); // Replace ' ' and '  ' with EOL str=str.replace(/<\/(?:td|th)>[\s]*<\/tr>[\s]/gim, '\n'); // Replace ' ', ' ', ' ' with EOL str=str.replace(/<\/(?:td|th|tr)>[\s]*/gim, '\n'); // Replace ' ' with '|-' str=str.replace(/[\s]* [\s]*/gim, '\n|-\n'); str=str.replace(/[\s]*]*)>[\s]*/gim, '\n|- $1\n'); // Replace ' ' with '|' str=str.replace(/[\s]* ([^\s])/gim, '\n| $1'); str=str.replace(/[\s]* ([\s])/gim, '\n|$1'); str=str.replace(/[\s]*]*?)[\s]*>([^\s])/gim, '\n| $1 | $2'); str=str.replace(/[\s]*]*?)[\s]*>([\s])/gim, '\n| $1 |$2'); // Replace ' ' with '!' str=str.replace(/[\s]* ([^\s])/gim, '\n! $1'); str=str.replace(/[\s]* ([\s])/gim, '\n!$1'); str=str.replace(/[\s]*]*?)[\s]*>([^\s])/gim, '\n! $1 | $2'); str=str.replace(/[\s]*]*?)[\s]*>([^\s])/gim, '\n! $1 |$2'); return str; }