0

我想强制我的 html 输入以下显示:14 尾数最大值(从 1 到 14)和有效的小数点后三位,如果用户在取默认 000 后没有指定点的值示例:输入 5 显示 5.000输入 5.2 显示 5.200 输入 22222 显示 22222.000 显示。请帮忙

4

2 回答 2

2

用于.indexOf检查.字符。substring确保它在那里并检查其索引之后的长度。如果小于 3,则添加一些零。

HTML

<input type="text" id="input" maxlength="14" value="" />

JavaScript

/* Select the desired input, and add an onChange event listener */
document.querySelector('#input').onchange = function () {
    /* if the user didn't add a dot, we add one with 3 zeros */
    if (this.value.indexOf('.') == -1) this.value += '.000';

    /* Otherwise, we check how many numbers there are after the dot
       and make sure there's at least 3*/
    if (this.value.substring(this.value.indexOf('.') + 1).length < 3)
        while (this.value.substring(this.value.indexOf('.') + 1).length < 3)
            this.value += '0';
};

现场演示

于 2013-08-16T12:58:42.380 回答
1
  1. 检查号码是否匹配(\d{1,14})(\.\d{1,3}){0,1}
  2. 由 .(dot) 字符分割
  3. 检查第二个数组结果的长度
  4. 如果 null 或 ajust 如果有 1 或 2 个长度,则添加 .000,添加 2 或 1 个零
于 2013-08-16T12:49:05.463 回答