<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JS: Разрезание строк на фрагменты заданной длины]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8505</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8505&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JS: Разрезание строк на фрагменты заданной длины».]]></description>
		<lastBuildDate>Fri, 26 Jul 2013 07:06:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JS: Разрезание строк на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74045#p74045</link>
			<description><![CDATA[<div class="quotebox"><cite>max7 пишет:</cite><blockquote><p>Эй, а как же самое банальное</p></blockquote></div><p>Если удалить весь синтаксический сахар вокруг методов splitLeft и splitRight получится &quot;банальное&quot; <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Fri, 26 Jul 2013 07:06:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74045#p74045</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: Разрезание строк на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74025#p74025</link>
			<description><![CDATA[<p>Эй, а как же самое банальное<br /></p><div class="codebox"><pre><code>String.prototype.split_len_v2 = function(len) 
{ 
   return this.match(new RegExp(&quot;.{&quot; + (len|0).toString(10) + &quot;}|.+&quot;, &quot;g&quot;)); 
};</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (max7)]]></author>
			<pubDate>Wed, 24 Jul 2013 21:31:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74025#p74025</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: Разрезание строк на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74023#p74023</link>
			<description><![CDATA[<p>Вот еще одна очень древняя штука. Уже сам не помню как работает. Результат ее работы такой же как и у <strong>splitLeft</strong>: </p><div class="codebox"><pre><code>
String.prototype.splitSize = function(size)
{
    var N = Math.abs(Number(size) || 0);

    if ( N == 0 ) {
        return [];
    }

    var n = Math.ceil(this.length / N);
    var result = new Array(n);
    var j = 0;

    var r = 0;
    if ( size &lt; 0 ) {
        r = this.length % N;
        if ( r ) {
            result[j] = this.slice(0, r);
            j++;
        }
    }

    for (var i = r; i &lt; this.length; j++, i += N) {
        result[j] = this.slice(i, i + N);
    }
    return result;
};
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Wed, 24 Jul 2013 20:49:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74023#p74023</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: Разрезание строк на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74020#p74020</link>
			<description><![CDATA[<p>А я вот такую штуку давно сделал<br /></p><div class="codebox"><pre><code>String.prototype.split_len = function(len)
{
   if(!len || !this.length)
      return [&quot;&quot;];
      
   if(len == 1)
      return this.split(&quot;&quot;);
            
   var out = [];
      
   if(this.length &gt; len)
   {
      for(var i = 0, ii = ((this.length/len)|0)*len; i &lt; ii; i += len)
         out.push(this.substr(i,len));
               
      if(this.length%len &gt; 0)  
         out.push(str.substr(this.length - (this.length%len))); 
   }
   else
   {
      out.push(this);
   }
            
   return out;
};</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (max7)]]></author>
			<pubDate>Wed, 24 Jul 2013 20:41:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74020#p74020</guid>
		</item>
		<item>
			<title><![CDATA[JS: Разрезание строк на фрагменты заданной длины]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74012#p74012</link>
			<description><![CDATA[<p>Нашел в своих закромах код, который решает задачу разрезания строк на фрагменты заданной длины. </p><p>Краткое описание:<br /></p><div class="quotebox"><blockquote><p><strong>String#splitLeft(n)</strong><br />Разрезать строку на фрагменты длиной <em>n</em>, начиная сначала исходной строки. Результатом является массив строк длиной не более <em>n</em> символов. </p><p><strong>String#splitRight(n)</strong><br />Разрезать строку на фрагменты длиной <em>n</em>, начиная с конца исходной строки. Результатом является массив строк длиной не более <em>n</em> символов.</p></blockquote></div><p>Исходный код:<br /></p><div class="codebox"><pre><code>
(function()
{
    function L(n)
    {
        return L[n] = L[n] || new RegExp(&#039;.{&#039; + n + &#039;}|.+&#039;, &#039;g&#039;);
    };

    function R(n)
    {
        return R[n] = R[n] || new RegExp(&#039;(?=(?:.{&#039; + n + &#039;})+$)&#039;);
    };

    function split(string, n, method, re)
    {
        n = Math.abs(Number(n) || 0);

        if ( n &lt;= 0 ) {
            return [];
        }

        if ( n == 1 ) {
            return string.split(&#039;&#039;);
        }

        return string[method](re);
    };

    String.prototype.splitLeft = function(n)
    {
        var re = L(n);
//        return split(this, n, &#039;match&#039;, re);
        return [].concat(split(this, n, &#039;match&#039;, re));
    };

    String.prototype.splitRight = function(n)
    {
        var re = R(n);
        return split(this, n, &#039;split&#039;, re);
    };

})();
</code></pre></div><p>Пример использования:<br /></p><div class="codebox"><pre><code>
function demo(n, s)
{
    var sl = s.splitLeft(n);
    var sr = s.splitRight(n);

    alert([
        &#039;Width  : &#039; + n, 
        &#039;Origin : &#039; + s, 
        &#039;Left   : &#039; + sl, 
        &#039;Right  : &#039; + sr, 
    ].join(&#039;\n&#039;));
};

var s = &#039;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&#039;;

demo(16, s);
demo(10, s);
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Wed, 24 Jul 2013 17:02:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74012#p74012</guid>
		</item>
	</channel>
</rss>
