js16进制转10进制

本文介绍了一个用于将十六进制数值转换为十进制数值的JavaScript函数。该函数首先清除输入字符串的前后空白,然后移除'0x'前缀,接着反转字符串并遍历每个字符,将其转换为对应的十进制数并计算最终的十进制数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var ex16hex = function (value) {
    value = value.replace(/^\s+|\s+$/g, "");
    var ex10 = document.getElementById('ex10');

    if (value) {
        value = stripscript(value);
        value = value.replace("0x", "");
        var arr = value.split("");
        arr = arr.reverse();
        var len = arr.length;
        var res = 0;
        arr.forEach(function (v, i) {
            var num = hex_change(v);
            // console.log(num)
            res += muti16(num, i);
        });
        ex10.style.display = 'block';
        ex10.innerText = '印刷卡号:' + res;
    } else {
        ex10.style.display = 'none';
    }
};

// 字符转16进制数字
var hex_change = function (v) {
    var res;
    switch (v) {
        case "a":
            res = 10;
            break;
        case "b":
            res = 11;
            break;
        case "c":
            res = 12;
            break;
        case "d":
            res = 13;
            break;
        case "e":
            res = 14;
            break;
        case "f":
            res = 15;
            break;
        case "1":
        case "2":
        case "3":
        case "4":
        case "5":
        case "6":
        case "7":
        case "8":
        case "9":
            res = Number(v);
            break;
        default:
            res = 0;
            break;
    }
    return res;
};

// 过滤所有特殊字符
var stripscript = function (s) {
    var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?↵\r\n]");
    var rs = "";
    for (var i = 0; i < s.length; i++) {
        rs = rs + s.substr(i, 1).replace(pattern, '');
    }
    return rs;
};

// 返回 v 乘以 n 个 16 的积
var muti16 = function (v, n) {
    var temp = v;
    for (var i = 0; i < n; i++) {
        temp *= 16;
    }
    return temp;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值