static _convertToNumericString(s, settings) {
        // Remove the custom brackets
        s = this._removeBrackets(s, settings, false);
        s = this._normalizeCurrencySuffixAndNegativeSignCharacters(s, settings);

        // Remove the grouping separators (thousands separators usually)
        s = s.replace(new RegExp(`[${settings.digitGroupSeparator}]`, 'g'), '');

        // Replace the decimal character by a dot
        if (settings.decimalCharacter !== '.') {
            s = s.replace(settings.decimalCharacter, '.');
        }

        // Move the trailing negative sign, if any, to the usual leftmost position
        if (AutoNumericHelper.isNegative(s) && s.lastIndexOf('-') === s.length - 1) {
            s = s.replace('-', '');
            s = `-${s}`;
        }

        // Replace the custom positive sign
        if (settings.showPositiveSign) {
            s = s.replace(settings.positiveSignCharacter, '');
        }

        // Convert arabic numbers to latin ones, if any
        const convertToNumber = settings.leadingZero !== AutoNumeric.options.leadingZero.keep;
        const temp = AutoNumericHelper.arabicToLatinNumbers(s, convertToNumber, false, false);
        if (!isNaN(temp)) {
            s = temp.toString();
        }

        return s;
    }
Return a number as a numeric string that can be typecast to a Number that Javascript will understand.

This function returns the given string by stripping:
- the currency sign (currencySymbol),
- the grouping separators (digitalGroupSpacing),
- the suffix text (suffixText),
- the positive sign (positiveSignCharacter),
- the brackets if any,
- by replacing the negative sign character with a hyphen,
- and by replacing the decimal character (decimalCharacter) by a dot.

Lastly, it also put the negative sign back to its normal position if needed.
Bonus; it converts any arabic numbers found to the latin ones.

@param {string} s
@param {object} settings
@returns {string|void|*}