export class CommonUtils {


  public static escapeRegExp( str : string ) : string{
    var len : number;
    var s : string;
    var i : number;

    var RE_CHARS = /[-\/\\^$*+?.()|[\]{}]/g; // eslint-disable-line no-useless-escape

  
    // Check if the string starts with a forward slash...
    if ( str[ 0 ] === '/' ) {
      // Find the last forward slash...
      len = str.length;
      for ( i = len-1; i >= 0; i-- ) {
        if ( str[ i ] === '/' ) {
          break;
        }
      }
    }
    // If we searched the string to no avail or if the first letter is not `/`, assume that the string is not of the form `/[...]/[guimy]`:
    if ( i === void 0 || i <= 0 ) {
      return str.replace( RE_CHARS, '\\$&' );
    }
    // We need to de-construct the string...
    s = str.substring( 1, i );
  
    // Only escape the characters between the `/`:
    s = s.replace( RE_CHARS, '\\$&' );
  
    // Reassemble:
    str = str[ 0 ] + s + str.substring( i );
  
    return str;
  }



}
