天天看點

擴充JS格式化(Format)功能及評論樹

<code>1、JS格式化功能</code>

<code>&lt;script&gt;</code>

<code>        </code><code>/*</code>

<code>        </code><code>1. 調用對象方法時,通過調用類的prototype中的方法,可以擴充</code>

<code>        </code><code>2. 正規表達式 /\w+/g</code>

<code>        </code><code>3. 字元串replace</code>

<code>                </code><code>''.replace('alex','sb');</code>

<code>                </code><code>''.replace(/\w+/,'sb');</code>

<code>                </code><code>''.replace(/\w+/g,'sb');</code>

<code>                </code><code>''.replace(/(\w+)/g,function(k,kk){return 11;});</code>

<code>        </code><code>*/</code>

<code>        </code><code>String.prototype.Format = </code><code>function</code><code>(arg){</code>

<code>            </code><code>/*</code>

<code>            </code><code>this,目前字元串  "i am {name1}, age is {age9}"</code>

<code>             </code><code>arg,Format方法傳入的參數 {name:'alex',age:18}</code>

<code>             </code><code>return,格式化之後擷取的新内容 i am alex, age is 18</code>

<code>            </code><code>*/</code>

<code>            </code><code>var</code> <code>temp = </code><code>this</code><code>.replace(/\{(\w+)\}/g,</code><code>function</code><code>(k,kk){</code>

<code>                </code><code>return</code> <code>arg[kk];</code>

<code>            </code><code>});</code>

<code>            </code><code>return</code> <code>temp;</code>

<code>        </code><code>};</code>

2、利用以上格式化功能和遞歸實作評論樹

<code>function</code> <code>commentTree(commentList){</code>

<code>            </code><code>var</code> <code>comment_str = </code><code>"&lt;div class='comment'&gt;"</code><code>;</code>

<code>            </code><code>$.each(commentList,</code><code>function</code><code>(k,row){</code>

<code>                </code><code>// var temp = "&lt;div class='content'&gt;"+ row.content +"&lt;/div&gt;";</code>

<code>                </code><code>var</code> <code>temp = </code><code>"&lt;div class='content'&gt;{content}&lt;/div&gt;"</code><code>.Format({content:row.content});</code>

<code>                </code><code>comment_str += temp;</code>

<code>                </code><code>if</code><code>(row.child.length&gt;0){</code>

<code>                    </code><code>comment_str += commentTree(row.child);</code>

<code>                </code><code>}</code>

<code>            </code><code>comment_str += </code><code>'&lt;/div&gt;'</code><code>;</code>

<code>            </code><code>return</code> <code>comment_str;</code>

<code>        </code><code>}</code>

本文轉自 AltBoy 51CTO部落格,原文連結:http://blog.51cto.com/altboy/1949498

繼續閱讀