有可能做一个脚本,在每个适合的单词后输入一个段落吗?

时间:2017-10-09 08:34:34

标签: javascript html css paragraph

我真的需要一个可以让我的工作更轻松的脚本,因为我正在处理很多单词。

我希望这个脚本在我的段落中放置最多的单词,每当段落中的单词变为5时,脚本将输入一个新的段落。

我们说我有这11个字。 苹果桌椅子电脑瓶笔窗花船箱

我希望我的脚本像这样安排它们

  

苹果桌椅家用电脑   

瓶笔窗花船   

希望你明白。

如果我把14个单词看起来像这样 苹果桌椅子电脑瓶笔窗口花船盒按钮鼠标书

  

苹果桌椅家用电脑   

瓶笔窗花船   

框按钮鼠标书

然后我会放16个

苹果桌椅家用电脑奶瓶笔窗花船盒按钮鼠标书挂历电缆

  

苹果桌椅家用电脑   

瓶笔窗花船   

框按钮鼠标书日历   

电缆

如果有可能,如果有人可以帮助我,我真的很乐意。必须说我不是程序员,但如果有人会给我这个脚本,我知道如何使用它。

6 个答案:

答案 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;
&#13;
&#13;

答案 3 :(得分:1)

如果您实际上要插入p标签而不是新行,您可以尝试这样做:

&#13;
&#13;
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;
&#13;
&#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;字符串到该位置的字符串并继续。

在提出问题之前,我还是建议您进行更彻底的搜索。希望这有帮助!