gpt4 book ai didi

javascript - 将 JavaScript(nodeJS) 字符串拆分为固定大小的 block

转载 作者:行者123 更新时间:2023-11-30 16:01:41 25 4
gpt4 key购买 nike

我想在 JavaScript 中使用空格作为分隔符(即它不应该打断单词)将一个字符串拆分成固定大小的 block (比如每个 140 个字符),注意:它应该处理换行符目前我正在使用 wordwrap npm 包,但它不处理换行符。

var wrap = require('wordwrap')(140)    
var str = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum"
console.log(wrap(str));

它适用于普通文本,但如果文本包含换行符,我会收到以下错误:
语法错误:意外的 token 非法
在 exports.runInThisContext (vm.js:73:16)
在 Module._compile (module.js:443:25)
在 Object.Module._extensions..js (module.js:478:10)
在 Module.load (module.js:355:32)
在 Function.Module._load (module.js:310:12)
在 Function.Module.runMain (module.js:501:10)
启动时 (node.js:129:16)
在 node.js:814:3

最佳答案

// define string variable
var string = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum"

function sliceMyString(str){
// initialize array (not required but verbose)
var slices = [];

// while string is not empty
// take 140 characters
// check witch one was the last space or if the end of the line is reached
// then => push them in slices
// then => remove them from the string

while(str != ''){
var lastSpace = 0;

for(var i = 0; i < str.length && i < 140; i ++){
if(str[i] == ' '){
lastSpace = i;
}
if(i == str.length - 1){
lastSpace = str.length;
}
}

// insert into array (including trailing space, see below the codeblock)
slices.push(str.slice(0, lastSpace));
str = str.slice(lastSpace);
}

// just logging the variables in the slices array

slices.map(function(slice){
console.log(slice);
});
}

sliceMyString(string);

如果要去掉尾随空格,可以使用trim():

slices.push(str.slice(0, lastSpace).trim());

关于javascript - 将 JavaScript(nodeJS) 字符串拆分为固定大小的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37630521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com