我需要在每两个数字后面自动加上冒号(:)。所以它看起来像:日:A4:55:FD:56:抄送
我已经写了一个逻辑,现在我可以放冒号了,但是当我按退格键时,我不能从冒号返回。
当我把光标放在已经写好的两位数上时,它允许写超过两位数,这是我不想要的。
下面是我的代码:
于飞:
<input type="text" ng-model="mac.macAddress" name="macAddress" id="macAddress"
maxlength="17" ng-change="macAddressFormat(mac)">
JS:
$scope.macAddressFormat = function(mac){
var macAddress = mac.macAddress;
var filteredMac = macAddress.replace(/\:/g, '');
var length = filteredMac.length;
if(length % 2 == 0 && length > 1 && length < 12){
mac.macAddress = mac.macAddress + ':';
}
else{
console.log('no');
}
}
请告诉我我哪里错了。谢谢!
2条答案
按热度按时间mi7gmzs61#
我在输入中添加了一个默认值,并添加了一个按钮,如果macAddress的长度有效,它将调用下面这行代码:
代码:
第一次
lpwwtiir2#
好的,那么,这是我的解决方案。它过滤非十六进制,自动插入冒号,删除时跳过它们,允许插入,并处理特殊情况(比如跳过已经存在的冒号)。它很难看吗?是的,也许吧。它工作吗?是的,在我目前发现的所有情况下。我会更新任何遗漏的情况,因为它们出现了,我应该找到并修复它们。请在您自己的代码中随意使用它,赚$$$,过上好日子。