一个坑爹的需求,JavaScript 要求动态输出正确的浮点数。

思路也很简单,bind 事件到 input 或者 on 事件里。 给出 MooTools 的代码,jQuery 和 ES5 实现的类似。

大致思路如下。

function convertFloot(idName) {

    var xx = $(idName).get('value');
    var textValue = xx.length;

    if (textValue <= 1) {
        $(idName).set('value', xx.replace(/\D/, ''));
    }

    if (textValue > 1) {
        var textTemp = $(idName).get('value');
        $(idName).set('value', textTemp.substring(0, 1) + textTemp.substring(1).replace(/[^0-9\.]/, ''));

        textTemp = $(idName).get('value');
        $(idName).set('value', textTemp.replace(/[\.]{2,}/, ''));

        textTemp = $(idName).get('value');
        if (textTemp.indexOf('.') != -1) {
            var partA = null;
            var partB = null;
            partA = textTemp.substring(0, textTemp.indexOf('.') + 1);
            partB = textTemp.substring(textTemp.indexOf('.') + 1);

            partB = partB.replace(/[\.]/g, '');
            textTemp = partA + partB;
            $(idName).set('value', textTemp);
        }
    }
}