最大数量内的Javascript分隔字符串

标签 javascript

我有一段很长的文本,我需要将其拆分成一个数组中的 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/

相关文章:

javascript - 使用 JavaScript 以便在单击图像时更改另一个元素的位置

javascript - .js 脚本添加的额外字符

javascript - 将 Angular4 中的 [ngStyle] 绑定(bind)到 ngModel 或 2 路绑定(bind)

javascript - 如果我的对象中有一个数组并且该对象位于一个大数组中,我该如何更新 React Native 状态?

javascript - 在 jQuery 中更快地替换元素 HTML

javascript - 无法在 angular6 中使用键值为 'templateUrl' 的对象

javascript - 如何设置可编辑 div 的初始值?

javascript - 在 iMacros javascript 中选择数据源文件

javascript - 输入数字时如何在数字输入字段中添加破折号?

javascript - 为什么密码会出现在 url 上?