45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * Sorts a column containing IP addresses in typical dot notation. This can 
 | 
						|
 * be most useful when using DataTables for a networking application, and 
 | 
						|
 * reporting information containing IP address. Also has a matching type 
 | 
						|
 * detection plug-in for automatic type detection.
 | 
						|
 *
 | 
						|
 *  @name IP addresses 
 | 
						|
 *  @summary Sort IP addresses numerically
 | 
						|
 *  @author Brad Wasson
 | 
						|
 *
 | 
						|
 *  @example
 | 
						|
 *    $('#example').dataTable( {
 | 
						|
 *       columnDefs: [
 | 
						|
 *         { type: 'ip-address', targets: 0 }
 | 
						|
 *       ]
 | 
						|
 *    } );
 | 
						|
 */
 | 
						|
 | 
						|
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
 | 
						|
	"ip-address-pre": function ( a ) {
 | 
						|
		var m = a.split("."), x = "";
 | 
						|
 | 
						|
		for(var i = 0; i < m.length; i++) {
 | 
						|
			var item = m[i];
 | 
						|
			if(item.length == 1) {
 | 
						|
				x += "00" + item;
 | 
						|
			} else if(item.length == 2) {
 | 
						|
				x += "0" + item;
 | 
						|
			} else {
 | 
						|
				x += item;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		return x;
 | 
						|
	},
 | 
						|
 | 
						|
	"ip-address-asc": function ( a, b ) {
 | 
						|
		return ((a < b) ? -1 : ((a > b) ? 1 : 0));
 | 
						|
	},
 | 
						|
 | 
						|
	"ip-address-desc": function ( a, b ) {
 | 
						|
		return ((a < b) ? 1 : ((a > b) ? -1 : 0));
 | 
						|
	}
 | 
						|
} );
 |