我有一段很长的文本,我需要将其拆分成一个数组中的 30 个单独的句子。使用此方法只会产生 30 个字符长的单个句子:
var string = 'Sedutperspiciatisundeomnisistenatuserrorsitvoluptatemaccusantiumdoloremquelaudantium,totamremaperiam,eaqueipsaquaeabilloinventoreveritatisetquasiarchitectobeataevitaedictasuntexplicabo.Nemoenimipsamvoluptatemquiavoluptassitaspernaturautoditautfugit,sedquiaconsequunturmagnidoloreseosquirationevoluptatemsequinesciunt.Nequeporroquisquamest,quidoloremipsumquiadolorsitamet,consectetur,adipiscivelit,sedquianonnumquameiusmoditemporainciduntutlaboreetdoloremagnamaliquamquaeratvoluptatem.Utenimadminimaveniam,quisnostrumexercitationemullamcorporissuscipitlaboriosam,nisiutaliquidexeacommodiconsequatur';
var regex = new RegExp('.{1,30}', 'g');
var text_array = string.match(regex);
console.log(text_array);
有没有办法把字符串分割成数组中指定行数?
最佳答案
您可以将字符串长度除以 30。这样您就知道每个片段需要多少个字符。
var chunks = Math.ceil(string.length / 30);
var regex = new RegExp(`.{1,${chunks}}`, 'g');
var text_array = string.match(regex);
请注意,您应该检查边缘情况,例如长度少于 30 个字符的字符串。与除法不准确的 Math.ceil
案例相比,解决方案更好。
如果你有一个 62 个字符长的字符串,Math.ceil(62/30) === 3
,但是 3 * 30 > 62
意味着你不能只需要 3 个字符长的 block ,这只是按照您的方法的说明性示例。
关于最大数量内的Javascript分隔字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64710388/