原生JS输入框填数字,form提交时自动补齐满n位数

问题遇到的现象和发生背景

需要实现一个需求:输入框中输入十六进制数如123ABC,实际传给后台时需要在前面补齐00,补满8位变成00123ABC,在Chrome和FF中我只用了一个padStart(8,0)即可解决问题,但是现在仍然需要适配老的IE浏览器,这个函数就不支持了,有没有什么办法可以补齐呢,不用体现到页面上,在提交的时候补到URL上即可,需要用到原生JS,因为是硬件要用无法使用框架和库

PS:没描述清楚,要求n位,但是输入的位数是不确定的, 所以不能简单拼接吧

IE 5 以上都可以支持。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var a = '124asd';
        if (!String.prototype.padStart) String.prototype.padStart = function (maxlength, fillString) {
            var res = '';
            for (var i = 0; i < maxlength - this.length; i++) res += fillString || ' '
            return res + this
        }
        console.log(a.padStart(8, '0')); 
    </script>
</body>

</html>

直接字符串拼接不行吗?

原生 js 就能实习,字符串 分割 然后 拼接

直接拼接 00 + ‘123ABC’