每2位数后输入mac地址时自动插入冒号

Mad*_*vda 3 javascript jquery

我想使用Java Script或jquery在html输入框中的每2位数后自动插入冒号.

我按下了

00然后像00一样自动插入冒号:

继续保持最多5次

00:00:00:00:00:00

Xot*_*750 12

试试这个

<div id="dialog-message" title="Enter MAC address">
    <input id="macAddress" type="text" maxlength="17"></input>
</div>

var macAddress = $("#macAddress");

$(function () {
    $("#dialog-message").dialog({
        modal: true,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
                alert("MAc address entered: " + macAddress.val());
            }
        }
    });
});

function formatMAC(e) {
    var r = /([a-f0-9]{2})([a-f0-9]{2})/i,
        str = e.target.value.replace(/[^a-f0-9]/ig, "");

    while (r.test(str)) {
        str = str.replace(r, '$1' + ':' + '$2');
    }

    e.target.value = str.slice(0, 17);
};

macAddress.on("keyup", formatMAC);
Run Code Online (Sandbox Code Playgroud)

jsfiddle

在没有jquery铃声和口哨声的纯javascript中,这是同样的事情.

<input id="macAddress" type="text" maxlength="17"></input>

var macAddress = document.getElementById("macAddress");

function formatMAC(e) {
    var r = /([a-f0-9]{2})([a-f0-9]{2})/i,
        str = e.target.value.replace(/[^a-f0-9]/ig, "");

    while (r.test(str)) {
        str = str.replace(r, '$1' + ':' + '$2');
    }

    e.target.value = str.slice(0, 17);
};

macAddress.addEventListener("keyup", formatMAC, false);
Run Code Online (Sandbox Code Playgroud)

jsfiddle