Remove all dots except the first one from a string

前端 未结 12 2605
栀梦
栀梦 2020-12-15 06:34

Given a string

\'1.2.3.4.5\'

I would like to get this output

\'1.2345\'

(In case there are no dots in the

12条回答
  •  不思量自难忘°
    2020-12-15 06:48

    Based on @Tadek's answer above. This function takes other locales into consideration.


    For example, some locales will use a comma for the decimal separator and a period for the thousand separator (e.g. -451.161,432e-12).

    First we convert anything other than 1) numbers; 2) negative sign; 3) exponent sign into a period ("-451.161.432e-12").

    Next we split by period (["-451", "161", "432e-12"]) and pop out the right-most value ("432e-12"), then join with the rest ("-451161.432e-12")

    (Note that I'm tossing out the thousand separators, but those could easily be added in the join step (.join(','))

    var ensureDecimalSeparatorIsPeriod = function (value) {
        var numericString = value.toString();
        var splitByDecimal = numericString.replace(/[^\d.e-]/g, '.').split('.');
        if (splitByDecimal.length < 2) {
            return numericString;
        }
        var rightOfDecimalPlace = splitByDecimal.pop();
        return splitByDecimal.join('') + '.' + rightOfDecimalPlace;
    };
    

提交回复
热议问题