我真的需要一个可以让我的工作更轻松的脚本,因为我正在处理很多单词。
我希望这个脚本在我的段落中放置最多的单词,每当段落中的单词变为5时,脚本将输入一个新的段落。
我们说我有这11个字。 苹果桌椅子电脑瓶笔窗花船箱
我希望我的脚本像这样安排它们
希望你明白。
苹果桌椅家用电脑
瓶笔窗花船
框
如果我把14个单词看起来像这样 苹果桌椅子电脑瓶笔窗口花船盒按钮鼠标书
然后我会放16个
苹果桌椅家用电脑
瓶笔窗花船
框按钮鼠标书
苹果桌椅家用电脑奶瓶笔窗花船盒按钮鼠标书挂历电缆
苹果桌椅家用电脑
瓶笔窗花船
框按钮鼠标书日历
电缆
如果有可能,如果有人可以帮助我,我真的很乐意。必须说我不是程序员,但如果有人会给我这个脚本,我知道如何使用它。
答案 0 :(得分:3)
使用JavaScript,您可以匹配此\w+
之类的单词,该单词将匹配连续字母,数字或下划线的任何序列。此外,\s*
将匹配一个或多个连续的空格。因此\w+\s*
匹配一个字,\w+\s*{5}
匹配5个字。我们使用$1
捕获此5个字词的字符串,并在其末尾添加换行符\n
。
var string = "apple table chair house computer bottle pen window flower ship box button mouse book calendar cable";
var newString = string.replace(/((\w+\s*){5})/g, "$1\n");
console.log(newString);
答案 1 :(得分:2)
var your_text = "apple table chair house computer bottle pen window flower ship";
var newtext = your_text.replace(/((\w+\W+\s*){5})/ig,"$1\n");
console.log(newtext)
答案 2 :(得分:1)
有更复杂的解决方案,如正则表达式或函数,但尝试这个简单的解决方案。
var texts = 'apple table chair house computer bottle pen window flower ship box';
var myarray = texts.split(" ");
var words = texts.split(' ').length;
var colwords=[];
var count_to_5=0;
for (var i = 0; i < words; i++) {
colwords.push(myarray[i]);
if (count_to_5==5){
var ll = colwords.toString();
var re = new RegExp(',', 'g');
$(".rr").append("<p>" + ll.replace(re,' ') + "</p>");
count_to_5=0;
colwords=[];
}
count_to_5++;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div class="rr"></div>
&#13;
答案 3 :(得分:1)
如果您实际上要插入p标签而不是新行,您可以尝试这样做:
var container = document.getElementById('container');
//get the text content
var text = container.innerText || container.textContent;
//split the text by spaces, any number of spaces
var words = text.split(/\s+/);
//empty the container
container.innerHTML = "";
words.forEach(function(word,index){
if(index%5 == 0){ //if current index is a multiple of 5
p = document.createElement("p");
container.append(p);
}
p.innerHTML += word+" ";
});
&#13;
<div id="container">
apple table chair house computer bottle pen window flower ship box button mouse book calendar cable
</div>
&#13;
答案 4 :(得分:0)
以下是根据您的喜好剪切字符串的解决方案
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<div id="stuff">a reallly really really long titleasdfasd fasdfasdfasdfasdfasdfadsf</div>
<script>
function cutToString(id, Lenth){
var text = document.getElementById(id).innerHTML;
var charsToCutTo = Lenth;
if(text.length>charsToCutTo){
var strShort = "";
for(i = 0; i < charsToCutTo; i++){
strShort += text[i];
}
document.getElementById(id).title = "text";
document.getElementById(id).innerHTML = strShort + "...";
}
};
cutToString('stuff', 40);
</script>
</body>
</html>
其中cutToSting是使用“ID”和字符串长度
传递文本的功能答案 5 :(得分:0)
This should insert a line break at the nearest whitespace of maxChar
查看此资源,了解您希望功能如何工作。我建议将一个名为whitespaces的计数器设置为0并运行循环并检查字符串中的空格字符。每当第5个空格出现时(检查模式5),添加一个&#39; \ n&#39;字符串到该位置的字符串并继续。
在提出问题之前,我还是建议您进行更彻底的搜索。希望这有帮助!