更改javascript正则表达式分隔符

时间:2014-06-10 11:41:20

标签: javascript regex

我有一个简单的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)

1 个答案:

答案 0 :(得分:2)

问题不在于正则表达式,而在于您如何将结果数组转换为字符串。当JavaScript引擎需要将数组转换为字符串时(在使用二进制+运算符并且两侧都有字符串时隐式执行),它会调用toString()方法,它基本上只调用join()方法,它返回一个字符串,其中数组的每个元素都转换为字符串,并用逗号分隔。

但是您可以自己调用join方法并指定您希望将其用作分隔符的字符,如下所示:

alert("B8:27:EB:" + splitted.join(':'));

在旁注中,您可以将正则表达式简化为.{1,2},这与您之前的完全相同:

var splitted = textboxtext.match(/.{1,2}/g);