我正在尝试实时编辑文本框值,以便每两个字符分割一次结果, 添加一列并从一些默认字符开始。
我现在所拥有的是这段代码,显然不起作用:
$('#textboxtext').keyup(function (){
var text = $("#textboxtext").val();
//$(text).attr('maxlength', '12');
var splitted = text.match(/.{2}|.{1,2}/g);
var result = ("B8:27:EB:" + splitted.join(':'));
});
我需要实时拆分和文本框内的默认字符,但我真的不知道从哪里开始......
答案 0 :(得分:0)
从您的代码中,您似乎正在尝试创建一个具有某些特定行为的文本框。看起来它需要以这样的方式格式化它的价值,即它始终以某些前缀'开头。 B8:27:EB:
的{{1}},每个后续字符对由:
分隔。这实际上是一种非常复杂的行为,您必须考虑许多不同的交互(例如,当用户尝试删除或修改前缀时会发生什么)。如果可能的话,我通常会尝试避免这种复杂的控制,但这是一个快速实现:
$('#textboxtext').keyup(function (e){
var prefix = "B8:27:EB:",
text = $(this).val(),
splitted, result;
if (text.indexOf(prefix) == 0)
text = text.substr(9);
else if (prefix.indexOf(text) == 0)
text = "";
text = text.replace(/:/g, '');
splitted = text.match(/.{1,2}/g) || [];
result = prefix + splitted.join(':');
$(this).val(result);
});
在文本框内输入,看看会发生什么。另请注意,此实现不会考虑所有类型的交互(例如右键单击并粘贴到文本框中),但这只是一个开始。