我有一个简单的JS问题。
我有这个代码,我需要的是每两个字符剪切文本框值(这很好),但我想用列更改逗号。
我的实际结果是: stringtest - st,ri,ng,te,st
我想要这个:
stringtest - st:ri:ng:te:st
我的代码是:
function test() {
var textboxtext= $("#textbox").val();
var splitted = textboxtext.match(/.{2}|.{1,2}/g);
alert("B8:27:EB:" + splitted)
答案 0 :(得分:2)
问题不在于正则表达式,而在于您如何将结果数组转换为字符串。当JavaScript引擎需要将数组转换为字符串时(在使用二进制+
运算符并且两侧都有字符串时隐式执行),它会调用toString()
方法,它基本上只调用join()
方法,它返回一个字符串,其中数组的每个元素都转换为字符串,并用逗号分隔。
但是您可以自己调用join
方法并指定您希望将其用作分隔符的字符,如下所示:
alert("B8:27:EB:" + splitted.join(':'));
在旁注中,您可以将正则表达式简化为.{1,2}
,这与您之前的完全相同:
var splitted = textboxtext.match(/.{1,2}/g);