如何将字符串中的数字分成四个字符块

时间:2014-07-30 11:16:51

标签: javascript

鉴于ccnum是一个只包含数字(信用卡号)的16个字符的字符串,我想一次用4位数字格式化字符串,用空格分隔。我试过这个:

ccnum=ccnum.substring(0, 4)+' '+
      ccnum.substring(4, 4)+' '+
      ccnum.substring(8, 4)+' '+
      ccnum.substring(12, 4);

但是我得到了不可预知的结果,例如:

12341234 1234 1234
1234 1234 12341234

不确定原因?

5 个答案:

答案 0 :(得分:3)

您可以使用JavaScript match() function和简单的正则表达式来获取所需内容。

  

match()方法在将字符串与正则表达式匹配时检索匹配。

var str = "1234123412341324";
var results = str.match(/\d{4}/g);
var final_cc_str = results.join(" ");

正则表达式/\d{4}/g正在搜索数字字符(\d)。其中四个({4})。并且它想要找到所有匹配,因此它使用g标志进行全局搜索。

之后我使用join() function连接每个匹配的元素,并用空格字符作为分隔符。

  

join()方法将数组的所有元素连接成一个字符串。

答案 1 :(得分:2)

你困惑了

substring

  

substring()方法返回一个索引与另一个索引之间或字符串末尾的字符串子集。

     

语法str.substring(indexA[, indexB])

ccnum=ccnum.substring(0, 4)+' '+
      ccnum.substring(4, 8)+' '+
      ccnum.substring(8, 12)+' '+
      ccnum.substring(12, 16);

substr

  

substr()方法通过指定的字符数返回从指定位置开始的字符串中的字符。

     

语法str.substr(start[, length])

ccnum=ccnum.substr(0, 4)+' '+
      ccnum.substr(4, 4)+' '+
      ccnum.substr(8, 4)+' '+
      ccnum.substr(12, 4);

答案 2 :(得分:1)

使用substr代替substring

试试这个

var ccnum = '123456789123456';

ccnum.substr(0, 4)+' '+ccnum.substr(4, 4)+' '+ccnum.substr(8, 4)+' '+ccnum.substr(12, 4);

答案 3 :(得分:0)

var ccnum = '1111222233334444';

ccnum.match(/.{1,4}/g);

结果

["1111", "2222", "3333", "4444"]

答案 4 :(得分:0)

试试这个。 JSFIDDLE

"1111222233334444".match(/.{1,4}/g).join(" ");