/**
 * 
 * This plug in will sort only on the number value that is included anywhere in a Regex.
 * This is useful for sorting data which requires some extra context to be included in the table.
 *
 *  @name numString
 *  @summary Sorting for number value that is included anywhere in a regex.
 *  @author [Sandy Galloway](http://datatables.net)
 *
 * 
 *  @example
 * //This example shows a mixture of text and number values, with the number at the start of the expression.
 * //It is using regex and start and end of expression tags.
 * //It will match "5 examples completed." for example. 
 * $(document).ready( function(){
 *      $.fn.dataTable.numString(/^\d+ examples? completed.$/);
 *      var table = $('#example').DataTable();
 * })
 * 
 * @example
 *  //This example shows a mixture of text and number values, with the number at the end of the expression.
 * //It is using regex and start and end of expression tags.
 * //It will match "Examples left: 67" for example. 
 *  $(document).ready( function(){
 *      $.fn.dataTable.numString(/^Examples? left: \d+$/);
 *      var table = $('#example').DataTable();
 * })
 * 
 * @example
 * //This example shows a mixture of text and number values, with the number in the middle of the expression.
 * //It is using regex and no start and end of expression tags.
 * //It will match "Only 1 left." for example. 
 *  $(document).ready(function(){
 *      $.fn.dataTable.numString(/Only \d+ left./);
 *      var table = $('example').DataTable();
 * })
 * 
    */
$.fn.dataTable.numString = function(format) {
    //This is the type detection plug in
    $.fn.dataTable.ext.type.detect.unshift(function(data) {
      if (typeof data !== "string") {
        return null;
      }
  
      if (data.match(format)) {
        return "numString-" + format.source;
      }
  
      return null;
    });
    
    //This is the ordering plug in
    $.fn.dataTable.ext.type.order[
      "numString-" + format.source + "-pre"
    ] = function(data) {
      var num = data.replace(/\D/g, "");
  
      return num * 1;
    };
    // end plug-in
  };