我要做的是有一个文本“框”,该框具有一定的行长,而没有将任何单词切成两半。 此刻我想做的是将文本切成n个长度的行,然后我试图通过知道下一个空格是何时来修复单词。 这是我目前所拥有的,但是它不能完全正常工作,只能修复某些单词
function TextBox(length,text){
array = [];
test = /[A-Za-z]+/g;
//cutting the text up
for (i= 0;i < Math.ceil(text.length / length); i ++){
array.push(text.slice(i * length,Math.min((i + 1) * length,text.length)));
}
//in case it ruins the lines the first time round
for (z = 0; z < 3; z++){
//reformatting the code
for (i = 0; i < array.length - 1; i ++){
if (test.test(array[i][array[i].length - 1])){
array[i] += array[i+1].substr(0,array[i+1].indexOf(' ') + 1);
array[i + 1] = array[i + 1].substr(array[i + 1].indexOf(' ') + 1);
}
}
}
//for debugging
console.log(array);
}
TextBox(5,"i like to eat cheese when I am hungry");
编辑 输入的示例是: “我饿时喜欢吃奶酪” 我想要类似的东西: [ “我喜欢”, “去吃”, “起司”, “当我”, “饿了” ] 我现在要出去的是: [ '我喜欢 ', '至 ', “吃c”,请注意奶酪中的“ c” “ heese”, ' 什么时候 ', '我是 ', “挂”, 'ry']和饥饿的“ ry”
如果您知道我在做错什么,或者更简单的方法来做,那会很好。
答案 0 :(得分:1)
一种选择是构造一个在5个字符,4个字符或7个字符等之间交替的正则表达式:
bfctools
在这些变更之前加上
Route::get('coin/search/{keyword?}', ['uses' => 'Coins@doSearch'])->name('coin.search');
Route::resource('coin' , 'Coins');
确保匹配的行不以空格开头,并以//结束替换
..... // 5 characters
.... // 4 characters
...... // 6 characters
... // 3 characters
....... // 7 characters
确保匹配在空格(或字符串的结尾)之前结束。
然后,您要做的就是在输入上执行模式(?! )
:
(?= |$)
答案 1 :(得分:1)
这是仅使用数组split()
和.reduce()
function TextBox(length,text){
var array = [];
text.split(' ').reduce(function(prev, cur) {
var next = [prev, cur].join(' ').trim();
if (next.length <= length) {
return next;
} else {
array.push(next);
return '';
}
});
console.log(array);
}
TextBox(5, 'i like to eat cheese when I am hungry');
TextBox(8, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum')