我真的不认为这里需要正则表达式。如果您知道需要拆分的索引,您可以这样做:
var input = '371449635398431'
var part1 = input.substr(0, 4);
var part2 = input.substr(4, 6);
var part3 = input.substr(10);
但如果正则表达式是必须的,你可以这样做:
var input = '371449635398431'
var match = /^(\d{4})(\d{6})(\d{5})$/.exec(input);
var part1 = match[1];
var part2 = match[2];
var part3 = match[3];
要在每个部分之间插入空格,您可以执行以下操作:
var match = input.substr(0, 4) + ' ' + input.substr(4, 6) + ' ' + input.substr(10);
Or this:
var match = [ input.substr(0, 4), input.substr(4, 6), input.substr(10) ].join(' ');
或者这个(灵感来自阿伦·P·约翰尼的回答 https://stackoverflow.com/a/17758531/1715579):
var match = /^(\d{4})(\d{6})(\d{5})$/.exec(input).slice(1).join(' ');
Or this:
var match = input.replace(/^(\d{4})(\d{6})(\d{5})$/, '$1 $2 $3');