mirror of
https://scm.univ-tours.fr/22107988t/rappaurio-sae501_502.git
synced 2025-11-01 22:05:22 +01:00
979 lines
221 KiB
HTML
979 lines
221 KiB
HTML
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style>
|
||
.KEYW {color: #933;}
|
||
.COMM {color: #bbb; font-style: italic;}
|
||
.NUMB {color: #393;}
|
||
.STRN {color: #393;}
|
||
.REGX {color: #339;}
|
||
.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
|
||
</style></head><body><pre><span class='line'> 1</span> <span class="TOKN"></span><span class="WHIT">
|
||
<span class='line'> 2</span> </span><span class="COMM">/**
|
||
<span class='line'> 3</span> * @name CeL data function
|
||
<span class='line'> 4</span> * @fileoverview
|
||
<span class='line'> 5</span> * 本檔案包含了 data 處理的 functions。
|
||
<span class='line'> 6</span> * @since
|
||
<span class='line'> 7</span> */</span><span class="WHIT">
|
||
<span class='line'> 8</span>
|
||
<span class='line'> 9</span>
|
||
<span class='line'> 10</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">CeL</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'> 11</span> </span><span class="NAME">CeL.setup_module</span><span class="PUNC">(</span><span class="STRN">'data'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'> 12</span> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'> 13</span> </span><span class="NAME">require</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'data.native.to_fixed'</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'> 14</span> </span><span class="NAME">code</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">library_namespace</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">load_arguments</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'> 15</span>
|
||
<span class='line'> 16</span> </span><span class="COMM">// requiring</span><span class="WHIT">
|
||
<span class='line'> 17</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">to_fixed</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 18</span> </span><span class="NAME">eval</span><span class="PUNC">(</span><span class="NAME">library_namespace.use_function</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 19</span>
|
||
<span class='line'> 20</span>
|
||
<span class='line'> 21</span> </span><span class="COMM">/**
|
||
<span class='line'> 22</span> * null module constructor
|
||
<span class='line'> 23</span> * @class data 處理的 functions
|
||
<span class='line'> 24</span> */</span><span class="WHIT">
|
||
<span class='line'> 25</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'> 26</span> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'> 27</span> </span><span class="WHIT"> </span><span class="COMM">// null module constructor</span><span class="WHIT">
|
||
<span class='line'> 28</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 29</span>
|
||
<span class='line'> 30</span> </span><span class="COMM">/**
|
||
<span class='line'> 31</span> * for JSDT: 有 prototype 才會將之當作 Class
|
||
<span class='line'> 32</span> */</span><span class="WHIT">
|
||
<span class='line'> 33</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'> 34</span> </span><span class="PUNC">.</span><span class="NAME">prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'> 35</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 36</span>
|
||
<span class='line'> 37</span>
|
||
<span class='line'> 38</span>
|
||
<span class='line'> 39</span>
|
||
<span class='line'> 40</span> </span><span class="COMM">/*
|
||
<span class='line'> 41</span> eval(uneval(o)): IE 沒有 uneval
|
||
<span class='line'> 42</span> http://keithdevens.com/weblog/archive/2007/Jun/07/javascript.clone
|
||
<span class='line'> 43</span>
|
||
<span class='line'> 44</span> way1:
|
||
<span class='line'> 45</span> return YAHOO.lang.JSON.parse( YAHOO.lang.JSON.stringify( obj ) );
|
||
<span class='line'> 46</span>
|
||
<span class='line'> 47</span> TODO:
|
||
<span class='line'> 48</span> 1.
|
||
<span class='line'> 49</span> 防止交叉參照版: try
|
||
<span class='line'> 50</span> var a=function(){this.a=1,this.b={a:this.a},this.a={b:this.b};},b=cloneObject(a);
|
||
<span class='line'> 51</span> .or.
|
||
<span class='line'> 52</span> var a={},b;
|
||
<span class='line'> 53</span> a.a={a:1};
|
||
<span class='line'> 54</span> a.b={a:a.a};
|
||
<span class='line'> 55</span> a.a={b:a.b};
|
||
<span class='line'> 56</span> b=cloneObject(a);
|
||
<span class='line'> 57</span>
|
||
<span class='line'> 58</span> 恐須改成
|
||
<span class='line'> 59</span> =new cloneObject();
|
||
<span class='line'> 60</span>
|
||
<span class='line'> 61</span>
|
||
<span class='line'> 62</span> 2.
|
||
<span class='line'> 63</span> equal()
|
||
<span class='line'> 64</span>
|
||
<span class='line'> 65</span> */</span><span class="WHIT">
|
||
<span class='line'> 66</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'> 67</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'> 68</span> </span><span class="NAME">clone_object</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
|
||
<span class='line'> 69</span> </span><span class="COMM">/**
|
||
<span class='line'> 70</span> * clone native Object
|
||
<span class='line'> 71</span> * @param {Object} object
|
||
<span class='line'> 72</span> * @param {Boolean} not_trivial
|
||
<span class='line'> 73</span> * @return
|
||
<span class='line'> 74</span> * @since 2008/7/19 11:13:10
|
||
<span class='line'> 75</span> */</span><span class="WHIT">
|
||
<span class='line'> 76</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">clone_object</span><span class="PUNC">(</span><span class="NAME">object</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">not_trivial</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'> 77</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">object</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">object</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Object</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'> 78</span> </span><span class="WHIT"> </span><span class="COMM">// || typeof(object) != 'object'</span><span class="WHIT">
|
||
<span class='line'> 79</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'> 80</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">object</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 81</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">object.constructor</span><span class="PUNC">(</span><span class="NAME">object</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// o.constructor()</span><span class="WHIT">
|
||
<span class='line'> 82</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">object</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'> 83</span> </span><span class="WHIT"> </span><span class="COMM">// o[i]===o: 預防 loop, 但還是不能防止交叉參照</span><span class="WHIT">
|
||
<span class='line'> 84</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">not_trivial</span><span class="COMM">/* ||o[i]===o */</span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">object</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">clone_object</span><span class="PUNC">(</span><span class="NAME">object</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">deep</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 85</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 86</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 87</span>
|
||
<span class='line'> 88</span>
|
||
<span class='line'> 89</span> </span><span class="COMM">/* 2004/5/5
|
||
<span class='line'> 90</span> 輸入('"','dh"fdgfg')得到2:指向"的位置
|
||
<span class='line'> 91</span> */</span><span class="WHIT">
|
||
<span class='line'> 92</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">getQuoteIndex</span><span class="PUNC">(</span><span class="NAME">quote</span><span class="PUNC">,</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// quote:['"/],[/]可能不太適用,除非將/[/]/→/[\/]/</span><span class="WHIT">
|
||
<span class='line'> 93</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 94</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">str.indexOf</span><span class="PUNC">(</span><span class="NAME">quote</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">></span><span class="NUMB">0</span><span class="PUNC">&&</span><span class="NAME">str.charAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="STRN">'\\'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'> 95</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">str.slice</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">-</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/(\\+)$/</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">RegExp.$1.length</span><span class="PUNC">%</span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 97</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'> 98</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'> 99</span>
|
||
<span class='line'>100</span>
|
||
<span class='line'>101</span>
|
||
<span class='line'>102</span>
|
||
<span class='line'>103</span>
|
||
<span class='line'>104</span> </span><span class="COMM">//{var a=[],b,t='',i;a[20]=4,a[12]=8,a[27]=4,a[29]=4,a[5]=6,a.e=60,a.d=17,a.c=1;alert(a);b=sortValue(a);alert(a+'\n'+b);for(i in b)t+='\n'+b[i]+' '+a[b[i]];alert(t);}</span><span class="WHIT">
|
||
<span class='line'>105</span> </span><span class="COMM">// 依值排出key array…起碼到現在,我還看不出此函數有啥大功用。</span><span class="WHIT">
|
||
<span class='line'>106</span> </span><span class="COMM">// array,否則會出現error! mode=1:相同value的以','合併,mode=2:相同value的以array填入</span><span class="WHIT">
|
||
<span class='line'>107</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">sortValue</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">mode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>108</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">j</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>109</span> </span><span class="WHIT"> </span><span class="COMM">// 使用(i in n)的方法,僅有數字的i會自動排序;這樣雖不必用sort(),但數字亦會轉成字串。</span><span class="WHIT">
|
||
<span class='line'>110</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>111</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="NAME">i</span><span class="PUNC">:</span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">=</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="NAME">j</span><span class="PUNC">:</span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>112</span> </span><span class="WHIT"> </span><span class="NAME">k.push</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>113</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>114</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>115</span> </span><span class="WHIT"> </span><span class="COMM">// sort 方法會在原地排序 Array 物件</span><span class="WHIT">
|
||
<span class='line'>116</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">k.sort</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">-</span><span class="NAME">b</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">k.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>117</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>118</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">mode</span><span class="PUNC">==</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>119</span> </span><span class="WHIT"> </span><span class="COMM">// b.join(',')與''+b效能相同</span><span class="WHIT">
|
||
<span class='line'>120</span> </span><span class="WHIT"> </span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="NAME">b.join</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>121</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">mode</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>122</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>123</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">r.push</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>124</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>125</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>126</span>
|
||
<span class='line'>127</span>
|
||
<span class='line'>128</span> </span><span class="COMM">/* 2005/7/18 21:26
|
||
<span class='line'>129</span> 依照所要求的index(sortByIndex_I)對array排序。
|
||
<span class='line'>130</span> sortByIndex_Datatype表某index為數字/字串或function
|
||
<span class='line'>131</span> 先設定sortByIndex_I,sortByIndex_Datatype再使用array.sort(sortByIndex);
|
||
<span class='line'>132</span>
|
||
<span class='line'>133</span> example:
|
||
<span class='line'>134</span> var array=[
|
||
<span class='line'>135</span> '123 avcf 334',
|
||
<span class='line'>136</span> '131 hj 562',
|
||
<span class='line'>137</span> '657 gfhj 435',
|
||
<span class='line'>138</span> '131 ajy 52',
|
||
<span class='line'>139</span> '345 fds 562',
|
||
<span class='line'>140</span> '52 gh 435',
|
||
<span class='line'>141</span> ];
|
||
<span class='line'>142</span> sortByIndex_I=[0,1],sortByIndex_Datatype={0:1,2:1};
|
||
<span class='line'>143</span> for(i in array)array[i]=array[i].split(' ');
|
||
<span class='line'>144</span> array.sort(sortByIndex);
|
||
<span class='line'>145</span> alert(array.join('\n'));
|
||
<span class='line'>146</span> */</span><span class="WHIT">
|
||
<span class='line'>147</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sortByIndex_I</span><span class="PUNC">,</span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>148</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">sortByIndex</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>149</span> </span><span class="WHIT"> </span><span class="COMM">//alert(a+'\n'+b);</span><span class="WHIT">
|
||
<span class='line'>150</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">n</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">sortByIndex_I.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>151</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">sortByIndex_I</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>152</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>153</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>154</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">=</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>155</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">!=</span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">></span><span class="NAME">b</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">]</span><span class="PUNC">?</span><span class="NUMB">1</span><span class="PUNC">:</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>156</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>157</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>158</span>
|
||
<span class='line'>159</span> </span><span class="COMM">/* 2005/7/18 21:26
|
||
<span class='line'>160</span> 依照所要求的index對array排序,傳回排序後的index array。
|
||
<span class='line'>161</span> **假如設定了separator,array的元素會先被separator分割!
|
||
<span class='line'>162</span>
|
||
<span class='line'>163</span> example:
|
||
<span class='line'>164</span> var array=[
|
||
<span class='line'>165</span> '123 avcf 334',
|
||
<span class='line'>166</span> '131 hj 562',
|
||
<span class='line'>167</span> '657 gfhj 435',
|
||
<span class='line'>168</span> '131 ajy 52',
|
||
<span class='line'>169</span> '345 fds 562',
|
||
<span class='line'>170</span> '52 gh 435',
|
||
<span class='line'>171</span> ];
|
||
<span class='line'>172</span> alert(getIndexSortByIndex(array,' ',[0,1],[0,2]));
|
||
<span class='line'>173</span> alert(array.join('\n')); // 已被separator分割!
|
||
<span class='line'>174</span>
|
||
<span class='line'>175</span> */</span><span class="WHIT">
|
||
<span class='line'>176</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">getIndexSortByIndex</span><span class="PUNC">(</span><span class="NAME">array</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">separator</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">indexArray</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">isNumberIndex</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>177</span> </span><span class="WHIT"> </span><span class="COMM">// 判定與事前準備(設定sortByIndex_I,sortByIndex_Datatype)</span><span class="WHIT">
|
||
<span class='line'>178</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">indexArray</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">sortByIndex_I</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">indexArray</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>179</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">indexArray</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">indexArray.constructor</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">sortByIndex_I</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>180</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">sortByIndex_I</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">indexArray</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>181</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sortByIndex_A</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>182</span> </span><span class="WHIT"> </span><span class="NAME">sortByIndex_Datatype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>183</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">isNumberIndex</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>184</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isNumberIndex.constructor</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">Array</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>185</span> </span><span class="WHIT"> </span><span class="NAME">sortByIndex_Datatype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>186</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">isNumberIndex.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">[</span><span class="NAME">isNumberIndex</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>187</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">sortByIndex_Datatype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">isNumberIndex</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>188</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>189</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">sortByIndex_Datatype</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>190</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>191</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">array</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>192</span>
|
||
<span class='line'>193</span> </span><span class="WHIT"> </span><span class="COMM">// main work: 可以不用重造array資料的話..</span><span class="WHIT">
|
||
<span class='line'>194</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">array</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>195</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">separator</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">array</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">array</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="NAME">separator</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>196</span> </span><span class="WHIT"> </span><span class="NAME">sortByIndex_A.push</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>197</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>198</span> </span><span class="WHIT"> </span><span class="NAME">sortByIndex_A.sort</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">sortByIndex</span><span class="PUNC">(</span><span class="NAME">array</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">array</span><span class="PUNC">[</span><span class="NAME">b</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>199</span>
|
||
<span class='line'>200</span> </span><span class="WHIT"> </span><span class="COMM">/* for: 重造array資料
|
||
<span class='line'>201</span> var getIndexSortByIndexArray=array;
|
||
<span class='line'>202</span> for(i in getIndexSortByIndexArray){
|
||
<span class='line'>203</span> if(separator)getIndexSortByIndexArray[i]=getIndexSortByIndexArray[i].split(separator);
|
||
<span class='line'>204</span> sortByIndex_A.push(i);
|
||
<span class='line'>205</span> }
|
||
<span class='line'>206</span> sortByIndex_A.sort(function (a,b){return sortByIndex(getIndexSortByIndexArray[a],getIndexSortByIndexArray[b]);});
|
||
<span class='line'>207</span> */</span><span class="WHIT">
|
||
<span class='line'>208</span>
|
||
<span class='line'>209</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">sortByIndex_A</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>210</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>211</span>
|
||
<span class='line'>212</span>
|
||
<span class='line'>213</span> </span><span class="COMM">//simpleWrite('char_frequency report3.txt',char_frequency(simpleRead('function.js')+simpleRead('accounts.js')));</span><span class="WHIT">
|
||
<span class='line'>214</span> </span><span class="COMM">//{var t=reduceCode(simpleRead('function.js')+simpleRead('accounts.js'));simpleWrite('char_frequency source.js',t),simpleWrite('char_frequency report.txt',char_frequency(t));} // 所費時間:十數秒(…太扯了吧!)</span><span class="WHIT">
|
||
<span class='line'>215</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>216</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>217</span> </span><span class="COMM">/**
|
||
<span class='line'>218</span> * 測出各字元的出現率。 普通使用字元@0-127:9-10,13,32-126,reduce後常用:9,32-95,97-125
|
||
<span class='line'>219</span> *
|
||
<span class='line'>220</span> * @param {String} text
|
||
<span class='line'>221</span> * 文檔
|
||
<span class='line'>222</span> * @return
|
||
<span class='line'>223</span> * @memberOf CeL.data
|
||
<span class='line'>224</span> */</span><span class="WHIT">
|
||
<span class='line'>225</span> </span><span class="NAME">char_frequency</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">text</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>226</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">text</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">used</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">unused</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">u1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">u2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">u1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>227</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>228</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">t.charCodeAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>229</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>230</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>231</span> </span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>232</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">u1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">256</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>233</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>234</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u2</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>235</span> </span><span class="WHIT"> </span><span class="NAME">used</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">','</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">unused</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u2</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">u2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>236</span> </span><span class="WHIT"> </span><span class="NAME">u1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>237</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>238</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u1</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>239</span> </span><span class="WHIT"> </span><span class="NAME">unused</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">','</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">used</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">u1</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">u1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>240</span> </span><span class="WHIT"> </span><span class="NAME">u2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>241</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>242</span> </span><span class="WHIT"> </span><span class="COMM">// 若是reduceCode()的程式,通常在120項左右。</span><span class="WHIT">
|
||
<span class='line'>243</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'used:'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">used.substr</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\nunused:'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">unused.substr</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>244</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sortValue</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">reverse</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">d.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>245</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">NewLine</span><span class="WHIT">
|
||
<span class='line'>246</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>247</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'['</span><span class="WHIT">
|
||
<span class='line'>248</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">fromCharCode</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\0/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'\\0'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\r/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'\\r'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>249</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\n/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'\\n'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\t/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'\\t'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']'</span><span class="WHIT">
|
||
<span class='line'>250</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">': '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">c</span><span class="PUNC">[</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="WHIT">
|
||
<span class='line'>251</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">100</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>252</span> </span><span class="WHIT"> </span><span class="COMM">//if(200*v<l)break; // .5%以上者←選購</span><span class="WHIT">
|
||
<span class='line'>253</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>254</span> </span><span class="WHIT"> </span><span class="NAME">alert</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>255</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>256</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>257</span>
|
||
<span class='line'>258</span> </span><span class="COMM">/*
|
||
<span class='line'>259</span> flag:
|
||
<span class='line'>260</span> (flag&1)==0 表情符號等不算一個字
|
||
<span class='line'>261</span> (flag&1)==1 連表情符號等也算一個字
|
||
<span class='line'>262</span> (flag&2)==1 將 HTML tag 全部消掉
|
||
<span class='line'>263</span>
|
||
<span class='line'>264</span> 可讀性/適讀性
|
||
<span class='line'>265</span> http://en.wikipedia.org/wiki/Flesch-Kincaid_Readability_Test
|
||
<span class='line'>266</span> http://en.wikipedia.org/wiki/Gunning_fog_index
|
||
<span class='line'>267</span> Gunning-Fog Index:簡單的來說就是幾年的學校教育才看的懂你的文章,數字越低代表越容易閱讀,若是高於17那表示你的文章太難囉,需要研究生才看的懂,我是6.08,所以要受過6.08年的學校教育就看的懂囉。
|
||
<span class='line'>268</span> Flesch Reading Ease:這個指數的分數越高,表示越容易了解,一般標準的文件大約介於60~70分之間。
|
||
<span class='line'>269</span> Flesch-Kincaid grade level:和Gunning-Fog Index相似,分數越低可讀性越高,越容易使閱讀者了解,至於此指數和Gunning-Fog Index有何不同,網站上有列出計算的演算法,有興趣的人可以比較比較。
|
||
<span class='line'>270</span>
|
||
<span class='line'>271</span> DO.normalize(): 合併所有child成一String, may crash IE6 Win! http://www.quirksmode.org/dom/tests/splittext.html
|
||
<span class='line'>272</span> */</span><span class="WHIT">
|
||
<span class='line'>273</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>274</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>275</span> </span><span class="COMM">/**
|
||
<span class='line'>276</span> * 計算字數 count words.
|
||
<span class='line'>277</span> *
|
||
<span class='line'>278</span> * @param {String} text
|
||
<span class='line'>279</span> * 文檔
|
||
<span class='line'>280</span> * @param {Number} flag 文檔格式/處理方法
|
||
<span class='line'>281</span> * @return {Number} 字數
|
||
<span class='line'>282</span> * @memberOf CeL.data
|
||
<span class='line'>283</span> */</span><span class="WHIT">
|
||
<span class='line'>284</span> </span><span class="NAME">count_word</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">text</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>285</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">is_HTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>286</span>
|
||
<span class='line'>287</span> </span><span class="WHIT"> </span><span class="COMM">// is HTML object</span><span class="WHIT">
|
||
<span class='line'>288</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>289</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">text.innerText</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>290</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text.innerText</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">is_HTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>291</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">text.innerHTML</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>292</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text.innerHTML</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">is_HTML</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>293</span>
|
||
<span class='line'>294</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>295</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>296</span>
|
||
<span class='line'>297</span> </span><span class="WHIT"> </span><span class="COMM">// 和perl不同,JScript常抓不到(.*?)之後還接特定字串的東西,大概因為沒有s。(.*?)得改作((.|\n)*?)? 或者該加/img?</span><span class="WHIT">
|
||
<span class='line'>298</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">is_HTML</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>299</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT">
|
||
<span class='line'>300</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<!--((.|\n)*?)-->/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>301</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<[\s\n]*\/?[\s\n]*[a-z][^<>]*>/gi</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>302</span>
|
||
<span class='line'>303</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">flag</span><span class="WHIT"> </span><span class="PUNC">&</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>304</span> </span><span class="WHIT"> </span><span class="COMM">// 連表情符號或 '(~。),' / 破折號 '——' / 刪節號 '……' 等標點符號也算一個字</span><span class="WHIT">
|
||
<span class='line'>305</span> </span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text.replace</span><span class="PUNC">(</span><span class="REGX">/[\+\-–*\\\/?!,;.<>{}\[\]@#$%^&_|"'~`—…、,;。!?:()()「」『』“”‘’]{2,}/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>306</span>
|
||
<span class='line'>307</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">text</span><span class="WHIT">
|
||
<span class='line'>308</span> </span><span class="WHIT"> </span><span class="COMM">// 去掉注解用的括弧、書名號、專名號、印刷符號等</span><span class="WHIT">
|
||
<span class='line'>309</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/[()()《》〈〉*#]+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>310</span> </span><span class="WHIT"> </span><span class="COMM">// 將英文、數字等改成單一字母。[.]: 縮寫</span><span class="WHIT">
|
||
<span class='line'>311</span> </span><span class="WHIT"> </span><span class="COMM">// http://en.wikibooks.org/wiki/Unicode/Character_reference/0000-0FFF</span><span class="WHIT">
|
||
<span class='line'>312</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/[a-zA-ZÀ-ÖØ-öø-ʨ\-–'.\d]{2,}/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'w'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>313</span> </span><span class="WHIT"> </span><span class="COMM">// date/time or number</span><span class="WHIT">
|
||
<span class='line'>314</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/[\d:+\-–\.\/,]{2,}/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>315</span> </span><span class="WHIT"> </span><span class="COMM">// 再去掉*全部*空白</span><span class="WHIT">
|
||
<span class='line'>316</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/[\s\n ]+/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>317</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>318</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>319</span>
|
||
<span class='line'>320</span>
|
||
<span class='line'>321</span>
|
||
<span class='line'>322</span>
|
||
<span class='line'>323</span>
|
||
<span class='line'>324</span>
|
||
<span class='line'>325</span>
|
||
<span class='line'>326</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>327</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>328</span> </span><span class="COMM">/**
|
||
<span class='line'>329</span> * 運算式值的二進位表示法 已最佳化:5.82s/100000次dec_to_bin(20,8)@300(?)MHz,2.63s/100000次dec_to_bin(20)@300(?)MHz
|
||
<span class='line'>330</span> * @param {Number} number number
|
||
<span class='line'>331</span> * @param places places,字元數,使用前置0來填補回覆值
|
||
<span class='line'>332</span> * @return
|
||
<span class='line'>333</span> * @example
|
||
<span class='line'>334</span> * {var d=new Date,i,b;for(i=0;i<100000;i++)b=dec_to_bin(20);alert(gDate(new Date-d));}
|
||
<span class='line'>335</span> * @memberOf CeL.data
|
||
<span class='line'>336</span> */</span><span class="WHIT">
|
||
<span class='line'>337</span> </span><span class="NAME">dec_to_bin</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">number</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">places</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>338</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">places</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">number</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC"><<</span><span class="WHIT"> </span><span class="NAME">places</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>339</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">number.toString</span><span class="PUNC">(</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>340</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">places</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>341</span> </span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>342</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">h</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>343</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>344</span> </span><span class="WHIT"> </span><span class="COMM">// native code 還是最快!</span><span class="WHIT">
|
||
<span class='line'>345</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">number.toString</span><span class="PUNC">(</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>346</span>
|
||
<span class='line'>347</span> </span><span class="WHIT"> </span><span class="COMM">// 上兩代:慢 var b='',c=1;for(p=p&&n<(p=1<<p)?p:n+1;c<p;c<<=1)b=(c&n?'1':'0')+b;return b; // 不用'1:0',型別轉換比較慢.不用i,多一個變數會慢很多</span><span class="WHIT">
|
||
<span class='line'>348</span> </span><span class="WHIT"> </span><span class="COMM">// 上一代:慢 if(p&&n+1<(1<<p)){var h='',c=1,b=n.toString(2);while(c<=n)c<<=1;while(c<p)c<<=1,h+='0';return h+(n?n.toString(2):'');}</span><span class="WHIT">
|
||
<span class='line'>349</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>350</span>
|
||
<span class='line'>351</span>
|
||
<span class='line'>352</span>
|
||
<span class='line'>353</span>
|
||
<span class='line'>354</span>
|
||
<span class='line'>355</span> </span><span class="COMM">/*
|
||
<span class='line'>356</span> value (Array)=value,(Object)value=
|
||
<span class='line'>357</span> [null]=value 累加=value
|
||
<span class='line'>358</span> value=[null] value=''
|
||
<span class='line'>359</span>
|
||
<span class='line'>360</span> type: value type ['=','][int|float|_num_]
|
||
<span class='line'>361</span> *前段
|
||
<span class='line'>362</span> 以[']或["]作分隔重定義指定號[=]與分隔號[,]
|
||
<span class='line'>363</span> *後段
|
||
<span class='line'>364</span> 數字表累加
|
||
<span class='line'>365</span> 'int'表整數int,累加1
|
||
<span class='line'>366</span> 'float'表示浮點數float,累加.1 bug:應該用.to_fixed()
|
||
<span class='line'>367</span> 不輸入或非數字表示string
|
||
<span class='line'>368</span>
|
||
<span class='line'>369</span> mode
|
||
<span class='line'>370</span> _.set_obj_value.F.object
|
||
<span class='line'>371</span> _.set_obj_value.F.array(10進位/當做數字)
|
||
<span class='line'>372</span> number: key部分之base(10進位,16進位等)
|
||
<span class='line'>373</span>
|
||
<span class='line'>374</span> example:
|
||
<span class='line'>375</span> set_obj_value('UTCDay','Sun,Mon,Tue,Wed,Thu,Fri,Sat','int'); // 自動從0開始設,UTCDay.Tue=2
|
||
<span class='line'>376</span> set_obj_value('UTCDay','Sun,Mon,Tue,Wed,Thu,Fri,Sat'); // UTCDay.Sun=UTCDay.Fri=''
|
||
<span class='line'>377</span> set_obj_value('add','a=3,b,c,d',2); // 累加2。add.b=5
|
||
<span class='line'>378</span> set_obj_value('add','a,b,c,d',1,_.set_obj_value.F.array); // add[2]='c'
|
||
<span class='line'>379</span> set_obj_value('add','4=a,b,c,d',2,_.set_obj_value.F.array); // 累加2。add[8]='c'
|
||
<span class='line'>380</span>
|
||
<span class='line'>381</span> */</span><span class="WHIT">
|
||
<span class='line'>382</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>383</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>384</span> </span><span class="COMM">/**
|
||
<span class='line'>385</span> * 設定object之值,輸入item=[value][,item=[value]..]。
|
||
<span class='line'>386</span> * value未設定會自動累加。
|
||
<span class='line'>387</span> * 使用前不必需先宣告…起碼在現在的JS版本中
|
||
<span class='line'>388</span> * @param obj object name that need to operate at
|
||
<span class='line'>389</span> * @param value valueto set
|
||
<span class='line'>390</span> * @param type 累加 / value type
|
||
<span class='line'>391</span> * @param mode mode / value type
|
||
<span class='line'>392</span> * @return
|
||
<span class='line'>393</span> * @memberOf CeL.data
|
||
<span class='line'>394</span> */</span><span class="WHIT">
|
||
<span class='line'>395</span> </span><span class="NAME">set_obj_value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">obj</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>396</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>397</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>398</span>
|
||
<span class='line'>399</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"if(typeof "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"!='object')"</span><span class="WHIT">
|
||
<span class='line'>400</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"=new "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
|
||
<span class='line'>401</span> </span><span class="WHIT"> </span><span class="COMM">// "[]":"{}"</span><span class="WHIT">
|
||
<span class='line'>402</span> </span><span class="WHIT"> </span><span class="COMM">// Array之另一種表示法:[value1,value2,..], Object之另一種表示法:{key1:value1,key2:value2,..}</span><span class="WHIT">
|
||
<span class='line'>403</span> </span><span class="WHIT"> </span><span class="STRN">"Array"</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"Object"</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>404</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">";"</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>405</span> </span><span class="WHIT"> </span><span class="COMM">// l: item, n: value to 累加</span><span class="WHIT">
|
||
<span class='line'>406</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Tint</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cmC</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\\u002c'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">eqC</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'\\u003d'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>407</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>408</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>409</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>410</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'"'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">"'"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>411</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type.split</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>412</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>413</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>414</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>415</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'int'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>416</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Tint</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>417</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'float'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>418</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>419</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>420</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>421</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>422</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Tint</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>423</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>424</span> </span><span class="WHIT"> </span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// t被設成累加數</span><span class="WHIT">
|
||
<span class='line'>425</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>426</span> </span><span class="WHIT"> </span><span class="COMM">//else t=1;</span><span class="WHIT">
|
||
<span class='line'>427</span>
|
||
<span class='line'>428</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>429</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value.split</span><span class="PUNC">(</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>430</span> </span><span class="WHIT"> </span><span class="COMM">// escape regex characters from jQuery</span><span class="WHIT">
|
||
<span class='line'>431</span> </span><span class="WHIT"> </span><span class="NAME">cmC</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="NAME">cmC.replace</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>432</span> </span><span class="WHIT"> </span><span class="REGX">/([\.\\\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\\$1"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'g'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>433</span> </span><span class="WHIT"> </span><span class="NAME">eqC</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="NAME">eqC.replace</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>434</span> </span><span class="WHIT"> </span><span class="REGX">/([\.\\\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\\$1"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'g'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>435</span>
|
||
<span class='line'>436</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>437</span> </span><span class="WHIT"> </span><span class="COMM">// n: 現在count到..</span><span class="WHIT">
|
||
<span class='line'>438</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>439</span>
|
||
<span class='line'>440</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">value.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>441</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>442</span> </span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">;</span><span class="COMM">// if(v[i].indexOf(p)==-1&&m)v[i]=p+v[i];//</span><span class="WHIT">
|
||
<span class='line'>443</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>444</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>445</span> </span><span class="WHIT"> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>446</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>447</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>448</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>449</span> </span><span class="WHIT"> </span><span class="COMM">// 去掉不合理的(Array可能有NaN index,所以不設條件。)</span><span class="WHIT">
|
||
<span class='line'>450</span> </span><span class="WHIT"> </span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>451</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="NAME">cmC</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="NAME">eqC</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>452</span> </span><span class="WHIT"> </span><span class="NAME">cmC</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="NAME">eqC</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'='</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>453</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">type</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>454</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>455</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>456</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>457</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>458</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Tint</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>459</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>460</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">type</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>461</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>462</span> </span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Tint</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>463</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Tint</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>464</span> </span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parseFloat</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>465</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>466</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>467</span> </span><span class="WHIT"> </span><span class="NAME">e</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'['</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">dQuote</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">']='</span><span class="WHIT">
|
||
<span class='line'>468</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">type</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">dQuote</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">';'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>469</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>470</span>
|
||
<span class='line'>471</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>472</span> </span><span class="WHIT"> </span><span class="COMM">//if(o=='kk')alert(e.slice(0,500));</span><span class="WHIT">
|
||
<span class='line'>473</span> </span><span class="WHIT"> </span><span class="COMM">// 因為沒想到其他方法可存取Global的object,只好使用eval..可以試試obj=set_obj_value(0,..){this=new Aaaray/Object}</span><span class="WHIT">
|
||
<span class='line'>474</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.eval_code</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>475</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>476</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.err</span><span class="PUNC">(</span><span class="STRN">'Error @ '</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">obj</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>477</span> </span><span class="WHIT"> </span><span class="NAME">library_namespace.err</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>478</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>479</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>480</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>481</span>
|
||
<span class='line'>482</span> </span><span class="NAME">_.set_obj_value.F</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>483</span> </span><span class="WHIT"> </span><span class="COMM">// object is default</span><span class="WHIT">
|
||
<span class='line'>484</span> </span><span class="WHIT"> </span><span class="STRN">'object'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>485</span> </span><span class="WHIT"> </span><span class="STRN">'array'</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="WHIT">
|
||
<span class='line'>486</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>487</span>
|
||
<span class='line'>488</span>
|
||
<span class='line'>489</span>
|
||
<span class='line'>490</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>491</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>492</span> </span><span class="COMM">/**
|
||
<span class='line'>493</span> * 將字串組分作 Object
|
||
<span class='line'>494</span> * @param {String} value_set 字串組, e.g., 'a=12,b=34'
|
||
<span class='line'>495</span> * @param assignment_char char to assign values, e.g., '='
|
||
<span class='line'>496</span> * @param end_char end char of assignment
|
||
<span class='line'>497</span> * @return
|
||
<span class='line'>498</span> * @since 2006/9/6 20:55, 2010/4/12 23:06:04
|
||
<span class='line'>499</span> * @memberOf CeL.data
|
||
<span class='line'>500</span> */</span><span class="WHIT">
|
||
<span class='line'>501</span> </span><span class="NAME">split_String_to_Object</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value_set</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">assignment_char</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">end_char</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>502</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">value_set</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">value_set</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>503</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>504</span>
|
||
<span class='line'>505</span> </span><span class="WHIT"> </span><span class="NAME">value_set</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value_set.split</span><span class="PUNC">(</span><span class="NAME">end_char</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="REGX">/[,;]/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>506</span>
|
||
<span class='line'>507</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">assignment_char</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>508</span> </span><span class="WHIT"> </span><span class="NAME">assignment_char</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/[=:]/</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>509</span>
|
||
<span class='line'>510</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">o</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">_e</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value_set.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>511</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">_e</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">_e</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>512</span> </span><span class="WHIT"> </span><span class="COMM">// http://msdn.microsoft.com/library/en-us/jscript7/html/jsmthsplit.asp</span><span class="WHIT">
|
||
<span class='line'>513</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value_set</span><span class="PUNC">[</span><span class="NAME">_e</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="NAME">assignment_char</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>514</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug(value_set[_e] + '\n' + a[0] + ' ' + a[1], 2);</span><span class="WHIT">
|
||
<span class='line'>515</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>516</span> </span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>517</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>518</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>519</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>520</span>
|
||
<span class='line'>521</span>
|
||
<span class='line'>522</span>
|
||
<span class='line'>523</span>
|
||
<span class='line'>524</span>
|
||
<span class='line'>525</span>
|
||
<span class='line'>526</span> </span><span class="COMM">/* 2003/10/1 15:46
|
||
<span class='line'>527</span> 比較string:m,n從起頭開始相同字元數
|
||
<span class='line'>528</span> return null: 格式錯誤,-1: !m||!n
|
||
<span class='line'>529</span> 若一開始就不同:0
|
||
<span class='line'>530</span>
|
||
<span class='line'>531</span>
|
||
<span class='line'>532</span> TODO:
|
||
<span class='line'>533</span>
|
||
<span class='line'>534</span> test starting with
|
||
<span class='line'>535</span>
|
||
<span class='line'>536</span> 2009/2/7 7:51:58
|
||
<span class='line'>537</span> 看來測試 string 的包含,以 .indexOf() 最快。
|
||
<span class='line'>538</span> 即使是比較 s.length 為極小常數的情況亦復如此
|
||
<span class='line'>539</span>
|
||
<span class='line'>540</span> 下面是快到慢:
|
||
<span class='line'>541</span>
|
||
<span class='line'>542</span> // long,short
|
||
<span class='line'>543</span> var contain_substring=[
|
||
<span class='line'>544</span> function(l,s){
|
||
<span class='line'>545</span> var a=0==l.indexOf(s);
|
||
<span class='line'>546</span> return a;
|
||
<span class='line'>547</span> }
|
||
<span class='line'>548</span> ,function(l,s){
|
||
<span class='line'>549</span> return 0==l.indexOf(s);
|
||
<span class='line'>550</span> }
|
||
<span class='line'>551</span> ,function(l,s){
|
||
<span class='line'>552</span> return s==l.slice(0,s.length);
|
||
<span class='line'>553</span> }
|
||
<span class='line'>554</span> ,function(l,s){
|
||
<span class='line'>555</span> return l.match(s);
|
||
<span class='line'>556</span> }
|
||
<span class='line'>557</span> ,function(l,s){
|
||
<span class='line'>558</span> for(var i=0;i<s.length;i++)
|
||
<span class='line'>559</span> if(s.charAt(i)!=l.charAt(i))return 0;
|
||
<span class='line'>560</span> return 1;
|
||
<span class='line'>561</span> }
|
||
<span class='line'>562</span> ];
|
||
<span class='line'>563</span>
|
||
<span class='line'>564</span> function test_contain_substring(){
|
||
<span class='line'>565</span> for(var i=0;i<contain_substring.length;i++){
|
||
<span class='line'>566</span> var t=new Date;
|
||
<span class='line'>567</span> for(var j=0;j<50000;j++){
|
||
<span class='line'>568</span> contain_substring[i]('sdfgjk;sh*dn\\fj;kgsamnd nwgu!eoh;nfgsj;g','sdfgjk;sh*dn\\fj;kgsamnd nwgu!');
|
||
<span class='line'>569</span> contain_substring[i]('sdbf6a89* /23hsauru','sdbf6a89* /23');
|
||
<span class='line'>570</span> }
|
||
<span class='line'>571</span> sl(i+': '+(new Date-t));
|
||
<span class='line'>572</span> }
|
||
<span class='line'>573</span> }
|
||
<span class='line'>574</span>
|
||
<span class='line'>575</span>
|
||
<span class='line'>576</span> // 極小常數的情況:
|
||
<span class='line'>577</span> // long,short
|
||
<span class='line'>578</span> var contain_substring=[
|
||
<span class='line'>579</span> function(l,s){
|
||
<span class='line'>580</span> var a=0==l.indexOf(s);
|
||
<span class='line'>581</span> return a;
|
||
<span class='line'>582</span> }
|
||
<span class='line'>583</span> ,function(l,s){
|
||
<span class='line'>584</span> return 0==l.indexOf(s);
|
||
<span class='line'>585</span> }
|
||
<span class='line'>586</span> ,function(l,s){
|
||
<span class='line'>587</span> return s==l.slice(0,1);
|
||
<span class='line'>588</span> }
|
||
<span class='line'>589</span> ,function(l,s){
|
||
<span class='line'>590</span> return s.charAt(0)==l.charAt(0);
|
||
<span class='line'>591</span> }
|
||
<span class='line'>592</span> ,function(l,s){
|
||
<span class='line'>593</span> return l.match(/^\//);
|
||
<span class='line'>594</span> }
|
||
<span class='line'>595</span> ];
|
||
<span class='line'>596</span>
|
||
<span class='line'>597</span> function test_contain_substring(){
|
||
<span class='line'>598</span> for(var i=0;i<contain_substring.length;i++){
|
||
<span class='line'>599</span> var t=new Date;
|
||
<span class='line'>600</span> for(var j=0;j<50000;j++){
|
||
<span class='line'>601</span> contain_substring[i]('a:\\sdfg.dfg\\dsfg\\dsfg','/');
|
||
<span class='line'>602</span> contain_substring[i]('/dsfg/adfg/sadfsdf','/');
|
||
<span class='line'>603</span> }
|
||
<span class='line'>604</span> sl(i+': '+(new Date-t));
|
||
<span class='line'>605</span> }
|
||
<span class='line'>606</span> }
|
||
<span class='line'>607</span>
|
||
<span class='line'>608</span>
|
||
<span class='line'>609</span> */</span><span class="WHIT">
|
||
<span class='line'>610</span>
|
||
<span class='line'>611</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>612</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>613</span> </span><span class="COMM">/**
|
||
<span class='line'>614</span> * test if 2 string is at the same length
|
||
<span class='line'>615</span> * @param s1 string 1
|
||
<span class='line'>616</span> * @param s2 string 2
|
||
<span class='line'>617</span> * @return
|
||
<span class='line'>618</span> * @memberOf CeL.data
|
||
<span class='line'>619</span> */</span><span class="WHIT">
|
||
<span class='line'>620</span> </span><span class="NAME">same_length</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">s1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>621</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="STRN">'string'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>622</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>623</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">s1</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">s2</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>624</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>625</span>
|
||
<span class='line'>626</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s1.length</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s2.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>627</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>628</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>629</span> </span><span class="WHIT"> </span><span class="COMM">//m==n.slice(0,i=m.length)</span><span class="WHIT">
|
||
<span class='line'>630</span> </span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">s2.indexOf</span><span class="PUNC">(</span><span class="NAME">s1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>631</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>632</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>633</span> </span><span class="WHIT"> </span><span class="COMM">//s2==s1.slice(0,i=s2.length)</span><span class="WHIT">
|
||
<span class='line'>634</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">s1.indexOf</span><span class="PUNC">(</span><span class="NAME">s2</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>635</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>636</span>
|
||
<span class='line'>637</span> </span><span class="WHIT"> </span><span class="COMM">//sl('*same_length: start length: '+i);</span><span class="WHIT">
|
||
<span class='line'>638</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">>></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s2.substr</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>639</span> </span><span class="WHIT"> </span><span class="COMM">//{sl('same_length: '+i+','+b+'; ['+m.substr(b)+'], ['+s+'] of ['+n+']');</span><span class="WHIT">
|
||
<span class='line'>640</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s1.indexOf</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>641</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>642</span> </span><span class="WHIT"> </span><span class="COMM">//sl('*same_length: '+i+','+b+'; ['+m.charAt(b)+'], ['+n.charAt(b)+'] of ['+n+']');</span><span class="WHIT">
|
||
<span class='line'>643</span> </span><span class="WHIT"> </span><span class="COMM">//var s_l=i&&m.charAt(b)==n.charAt(b)?b+1:b;</span><span class="WHIT">
|
||
<span class='line'>644</span> </span><span class="WHIT"> </span><span class="COMM">//sl('*same_length: '+s_l+':'+m.slice(0,s_l)+',<em>'+m.slice(s_l)+'</em>; '+n.slice(0,s_l)+',<em>'+n.slice(s_l)+'</em>');</span><span class="WHIT">
|
||
<span class='line'>645</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">s1.charAt</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">s2.charAt</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">b</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>646</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>647</span>
|
||
<span class='line'>648</span>
|
||
<span class='line'>649</span>
|
||
<span class='line'>650</span> </span><span class="COMM">//-----------------------------------------------------------------------------</span><span class="WHIT">
|
||
<span class='line'>651</span>
|
||
<span class='line'>652</span>
|
||
<span class='line'>653</span>
|
||
<span class='line'>654</span> </span><span class="COMM">/*
|
||
<span class='line'>655</span> http://www.bipm.org/en/si/si_brochure/chapter3/prefixes.html
|
||
<span class='line'>656</span> http://en.wikipedia.org/wiki/International_System_of_Units
|
||
<span class='line'>657</span> http://www.merlyn.demon.co.uk/js-maths.htm#RComma
|
||
<span class='line'>658</span> http://physics.nist.gov/cuu/Units/prefixes.html
|
||
<span class='line'>659</span> http://www.uni-bonn.de/~manfear/numbers_names.php
|
||
<span class='line'>660</span> http://wawa.club.hinet.net/cboard1/HCB_Dis.asp?BrdNo=78&SubNo=78761&Club=0&ClsName=%B1%D0%A8%7C%BE%C7%B2%DF
|
||
<span class='line'>661</span> http://bbs.thu.edu.tw/cgi-bin/bbscon?board=English&file=M.1046073664.A&num=106
|
||
<span class='line'>662</span> */</span><span class="WHIT">
|
||
<span class='line'>663</span> </span><span class="COMM">//to_SI_prefix[generateCode.dLK]='setTool,to_fixed,-to_SI_prefix.n,-to_SI_prefix.v';</span><span class="WHIT">
|
||
<span class='line'>664</span>
|
||
<span class='line'>665</span>
|
||
<span class='line'>666</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>667</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>668</span> </span><span class="COMM">/**
|
||
<span class='line'>669</span> * 將數字轉為 K, M, G 等 SI prefixes 表示方式,例如 6458 轉成 6.31K。
|
||
<span class='line'>670</span> * @param {Number} number 數字
|
||
<span class='line'>671</span> * @param {Number} digits to fixed digit
|
||
<span class='line'>672</span> * @type {String}
|
||
<span class='line'>673</span> * @return {String} SI prefixes 表示方式
|
||
<span class='line'>674</span> * @requires setTool,to_fixed
|
||
<span class='line'>675</span> * @memberOf CeL.data
|
||
<span class='line'>676</span> */</span><span class="WHIT">
|
||
<span class='line'>677</span> </span><span class="NAME">to_SI_prefix</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">number</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">digits</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>678</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">to_SI_prefix</span><span class="PUNC">(</span><span class="NAME">number</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">digits</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>679</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">to_SI_prefix.v</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>680</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">number</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>681</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">number</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>682</span>
|
||
<span class='line'>683</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">number</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>684</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>685</span>
|
||
<span class='line'>686</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">to_fixed.call</span><span class="PUNC">(</span><span class="NAME">number</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">[</span><span class="PUNC">--</span><span class="NAME">p</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">digits</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">digits</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>687</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">to_SI_prefix.s</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>688</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>689</span>
|
||
<span class='line'>690</span> </span><span class="WHIT"> </span><span class="COMM">// Initialization</span><span class="WHIT">
|
||
<span class='line'>691</span> </span><span class="WHIT"> </span><span class="COMM">// 在 IE5 中,因為 base 沒有預先定義,因此在這邊會出現錯誤。</span><span class="WHIT">
|
||
<span class='line'>692</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">_s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_.to_SI_prefix</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">base</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.base</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>693</span> </span><span class="WHIT"> </span><span class="NAME">N</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">base</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">to_SI_prefix.v</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">base</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
||
<span class='line'>694</span> </span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">to_SI_prefix.s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_s.symbol.split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>695</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>696</span> </span><span class="WHIT"> </span><span class="NAME">v.push</span><span class="PUNC">(</span><span class="NAME">N</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">base</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>697</span>
|
||
<span class='line'>698</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">library_namespace.replace_function</span><span class="PUNC">(</span><span class="NAME">_</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'to_SI_prefix'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">to_SI_prefix</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>699</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>700</span>
|
||
<span class='line'>701</span> </span><span class="COMM">// define what is "1k"</span><span class="WHIT">
|
||
<span class='line'>702</span> </span><span class="NAME">_.to_SI_prefix.base</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1024</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>703</span> </span><span class="NAME">_.to_SI_prefix.symbol</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'k,M,G,T,P,E,Z,Y'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>704</span>
|
||
<span class='line'>705</span>
|
||
<span class='line'>706</span> </span><span class="COMM">// 將漢字轉為阿拉伯數字表示法(0-99999)</span><span class="WHIT">
|
||
<span class='line'>707</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">turnKanjiToNumbers</span><span class="PUNC">(</span><span class="NAME">num</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>708</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">num</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>709</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">num</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">num</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>710</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'〇,一,二,三,四,五,六,七,八,九'</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'萬,千,百,十,'</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
|
||
<span class='line'>711</span> </span><span class="WHIT"> </span><span class="COMM">// O, ○=[〇] http://zh.wikipedia.org/wiki/%E6%97%A5%E8%AA%9E%E6%95%B8%E5%AD%97</span><span class="WHIT">
|
||
<span class='line'>712</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">num</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/[O○]/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'〇'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>713</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>714</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">n.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">[</span><span class="NAME">n</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>715</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">d.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>716</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">p.indexOf</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">p.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>717</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'十'</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">p.slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">[</span><span class="NAME">p.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/^〇+/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">num</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">p.slice</span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>718</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">10</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>719</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>720</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>721</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>722</span> </span><span class="COMM">//alert(turnKanjiToNumbers('四萬〇三百七十九'));</span><span class="WHIT">
|
||
<span class='line'>723</span> </span><span class="COMM">//alert(turnKanjiToNumbers('十'));</span><span class="WHIT">
|
||
<span class='line'>724</span>
|
||
<span class='line'>725</span> </span><span class="COMM">// 將阿拉伯數字轉為中文數字大、小兩種表示法/讀法 ,to_Chinese_numeralD,to_Chinese_numeralInit,"to_Chinese_numeralInit();",_to_Chinese_numeral,to_Chinese_numeral</span><span class="WHIT">
|
||
<span class='line'>726</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">to_Chinese_numeralD</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>727</span> </span><span class="COMM">//to_Chinese_numeralInit[generateCode.dLK]='to_Chinese_numeralD';</span><span class="WHIT">
|
||
<span class='line'>728</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">to_Chinese_numeralInit</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>729</span> </span><span class="WHIT"> </span><span class="NAME">to_Chinese_numeralD</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>730</span> </span><span class="WHIT"> </span><span class="STRN">'num'</span><span class="PUNC">:</span><span class="PUNC">[</span><span class="STRN">'〇,一,二,三,四,五,六,七,八,九'</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="STRN">'零,壹,貳,參,肆,伍,陸,柒,捌,玖'</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="COMM">// 數字 叄</span><span class="WHIT">
|
||
<span class='line'>731</span> </span><span class="WHIT"> </span><span class="COMM">// http://zh.wikipedia.org/wiki/%E4%B8%AD%E6%96%87%E6%95%B0%E5%AD%97 http://zh.wikipedia.org/wiki/%E5%8D%81%E8%BF%9B%E5%88%B6 http://zh.wikipedia.org/wiki/%E4%B8%AD%E6%96%87%E6%95%B0%E5%AD%97 http://lists.w3.org/Archives/Public/www-style/2003Apr/0063.html http://forum.moztw.org/viewtopic.php?t=3043 http://www.moroo.com/uzokusou/misc/suumei/suumei.html http://espero.51.net/qishng/zhao.htm http://www.nchu.edu.tw/~material/nano/newsbook1.htm</span><span class="WHIT">
|
||
<span class='line'>732</span> </span><span class="WHIT"> </span><span class="COMM">// 十億(吉),兆(萬億),千兆(拍),百京(艾),十垓(澤),秭(堯),秭:禾予;溝(土旁);,無量大數→,無量,大數;[載]之後的[極]有的用[報] 異體:阿僧[禾氏],For Korean:阿僧祗;秭:禾予,抒,杼,For Korean:枾 For Korean:不可思議(不:U+4E0D→U+F967)</span><span class="WHIT">
|
||
<span class='line'>733</span> </span><span class="WHIT"> </span><span class="COMM">// Espana應該是梵文所譯 因為根據「大方廣佛華嚴經卷第四十五卷」中在「無量」這個數位以後還有無邊、無等、不可數、不可稱、不可思、不可量、不可說、不可說不可說,Espana應該是指上面其中一個..因為如果你有心查查Espana其實應該是解作西班牙文的「西班牙」</span><span class="WHIT">
|
||
<span class='line'>734</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="STRN">'d'</span><span class="PUNC">:</span><span class="STRN">',萬,億,兆,京,垓,秭,穰,溝,澗,正,載,極,恒河沙,阿僧祇,那由他,不可思議,無量,大數,Espana'</span><span class="WHIT"> </span><span class="COMM">// denomination, 單位</span><span class="WHIT">
|
||
<span class='line'>735</span> </span><span class="WHIT"> </span><span class="COMM">// http://zh.wikipedia.org/wiki/%E5%8D%81%E9%80%80%E4%BD%8D</span><span class="WHIT">
|
||
<span class='line'>736</span> </span><span class="WHIT"> </span><span class="COMM">// 比漠微細的,是自天竺的佛經上的數字。而這些「佛經數字」已成為「古代用法」了。</span><span class="WHIT">
|
||
<span class='line'>737</span> </span><span class="WHIT"> </span><span class="COMM">// 小數單位(十退位):分,釐(厘),毫(毛),絲,忽,微,纖,沙,塵(納),埃,渺,漠(皮),模糊,逡巡,須臾(飛),瞬息,彈指,剎那(阿),六德(德),虛,空,清,淨 or:,虛,空,清,淨→,空虛,清淨(仄),阿賴耶,阿摩羅,涅槃寂靜(攸)</span><span class="WHIT">
|
||
<span class='line'>738</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="STRN">'bd'</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="WHIT"> </span><span class="COMM">// 暫時定義</span><span class="WHIT">
|
||
<span class='line'>739</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>740</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="PUNC">(</span><span class="NAME">to_Chinese_numeralD</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>741</span> </span><span class="WHIT"> </span><span class="NAME">bd</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">(</span><span class="STRN">',十,百,千'</span><span class="PUNC">+</span><span class="NAME">to_Chinese_numeralD.d</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="PUNC">(</span><span class="STRN">',拾,佰,仟'</span><span class="PUNC">+</span><span class="NAME">to_Chinese_numeralD.d</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="COMM">// base denomination</span><span class="WHIT">
|
||
<span class='line'>742</span> </span><span class="WHIT"> </span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">d.split</span><span class="PUNC">(</span><span class="STRN">','</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>743</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>744</span> </span><span class="NAME">to_Chinese_numeralInit</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>745</span> </span><span class="COMM">/* 處理1-99999的數,尚有bug
|
||
<span class='line'>746</span> 東漢時期的《數述記遺》
|
||
<span class='line'>747</span> 一是上法,為自乘系統: 萬萬為億,億億為兆,兆兆為京。
|
||
<span class='line'>748</span> 二是中法,為萬進系統,皆以萬遞進
|
||
<span class='line'>749</span> 三是下法,為十進系統,皆以十遞進←現代的科學技術上用的“兆”,以及_to_Chinese_numeral()用的
|
||
<span class='line'>750</span> */</span><span class="WHIT">
|
||
<span class='line'>751</span> </span><span class="COMM">//_to_Chinese_numeral[generateCode.dLK]='to_Chinese_numeralD,*to_Chinese_numeralInit();';</span><span class="WHIT">
|
||
<span class='line'>752</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">_to_Chinese_numeral</span><span class="PUNC">(</span><span class="NAME">numStr</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">kind</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>753</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">kind</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>754</span> </span><span class="WHIT"> </span><span class="NAME">kind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>755</span> </span><span class="WHIT"> </span><span class="COMM">// 用r=[]約多花一倍時間!</span><span class="WHIT">
|
||
<span class='line'>756</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">numStr.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tnum</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">to_Chinese_numeralD.num</span><span class="PUNC">[</span><span class="NAME">kind</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tbd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">to_Chinese_numeralD.bd</span><span class="PUNC">[</span><span class="NAME">kind</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">zero</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tnum</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>757</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><=</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>758</span> </span><span class="WHIT"> </span><span class="COMM">// if(d=parseInt(numStr.charAt(i)))比較慢</span><span class="WHIT">
|
||
<span class='line'>759</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">numStr.charAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>760</span> </span><span class="WHIT"> </span><span class="COMM">// '〇一二三四五六七八'.charAt(d) 比較慢</span><span class="WHIT">
|
||
<span class='line'>761</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tnum</span><span class="PUNC">[</span><span class="NAME">d</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">tbd</span><span class="PUNC">[</span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>762</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">r.slice</span><span class="PUNC">(</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">zero</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>763</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">numStr.substr</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>764</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">zero</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>765</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>766</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>767</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>768</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>769</span> </span><span class="COMM">//2.016,2.297,2.016</span><span class="WHIT">
|
||
<span class='line'>770</span> </span><span class="COMM">//{var d=new Date,v='12345236',i=0,a;for(;i<10000;i++)a=to_Chinese_numeral(v);alert(v+'\n→'+a+'\ntime:'+gDate(new Date-d));}</span><span class="WHIT">
|
||
<span class='line'>771</span>
|
||
<span class='line'>772</span> </span><span class="COMM">//to_Chinese_numeral[generateCode.dLK]='to_Chinese_numeralD,to_Chinese_numeralInit,_to_Chinese_numeral,to_Chinese_numeral';//,*to_Chinese_numeralInit();</span><span class="WHIT">
|
||
<span class='line'>773</span> </span><span class="COMM">/**
|
||
<span class='line'>774</span> * 將數字轉為漢字表示法。
|
||
<span class='line'>775</span> * num>1京時僅會取概數,此時得轉成string再輸入!
|
||
<span class='line'>776</span> * TODO:
|
||
<span class='line'>777</span> * 統整:尚有bug。
|
||
<span class='line'>778</span> * 廿卅
|
||
<span class='line'>779</span> * @param num
|
||
<span class='line'>780</span> * @param kind
|
||
<span class='line'>781</span> * @returns
|
||
<span class='line'>782</span> */</span><span class="WHIT">
|
||
<span class='line'>783</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">to_Chinese_numeral</span><span class="PUNC">(</span><span class="NAME">num</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">kind</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>784</span> </span><span class="WHIT"> </span><span class="COMM">// num=parseFloat(num);</span><span class="WHIT">
|
||
<span class='line'>785</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">num</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>786</span> </span><span class="WHIT"> </span><span class="NAME">num</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">num.toString</span><span class="PUNC">(</span><span class="NUMB">10</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>787</span> </span><span class="WHIT"> </span><span class="NAME">num</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">num</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/[,\s]/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>788</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">num</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>789</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'(非數值)'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>790</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">num.match</span><span class="PUNC">(</span><span class="REGX">/(-?[\d.]+)/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>791</span> </span><span class="WHIT"> </span><span class="NAME">num</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RegExp.$1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>792</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">kind</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>793</span> </span><span class="WHIT"> </span><span class="NAME">kind</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>794</span>
|
||
<span class='line'>795</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">num.indexOf</span><span class="PUNC">(</span><span class="STRN">'.'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">addZero</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">tnum</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">to_Chinese_numeralD.num</span><span class="PUNC">[</span><span class="NAME">kind</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">zero</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tnum</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">td</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">to_Chinese_numeralD.d</span><span class="PUNC">;</span><span class="COMM">// i:integer,整數;d:decimal,小數</span><span class="WHIT">
|
||
<span class='line'>796</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>797</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>798</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>799</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">num</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">num.replace</span><span class="PUNC">(</span><span class="REGX">/0+$/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">num.substr</span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">num</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">num</span><span class="WHIT">
|
||
<span class='line'>800</span> </span><span class="WHIT"> </span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">i.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>801</span> </span><span class="WHIT"> </span><span class="COMM">// 小數</span><span class="WHIT">
|
||
<span class='line'>802</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tnum</span><span class="PUNC">[</span><span class="NAME">i.charAt</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>803</span>
|
||
<span class='line'>804</span> </span><span class="WHIT"> </span><span class="COMM">// 至此num為整數</span><span class="WHIT">
|
||
<span class='line'>805</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">num.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'-'</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>806</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'負'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">num</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">num.substr</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>807</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>808</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>809</span> </span><span class="WHIT"> </span><span class="NAME">num</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">num.replace</span><span class="PUNC">(</span><span class="REGX">/^0+/</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>810</span>
|
||
<span class='line'>811</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">num.length</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">num.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>812</span> </span><span class="WHIT"> </span><span class="COMM">// addZero=false, l=Math.floor((num.length-1)/4)</span><span class="WHIT">
|
||
<span class='line'>813</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">num.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>814</span> </span><span class="WHIT"> </span><span class="COMM">// 這邊得用 parseInt( ,10): parseInt('0~')會用八進位,其他也有奇怪的效果。</span><span class="WHIT">
|
||
<span class='line'>815</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Math.floor</span><span class="PUNC">(</span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">num.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">num.substr</span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>816</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">_to_Chinese_numeral</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">kind</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>817</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">addZero</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">addZero</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">m.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">zero</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>818</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">zero</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">td</span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">addZero</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>819</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>820</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">td</span><span class="PUNC">[</span><span class="NAME">l</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>821</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT">
|
||
<span class='line'>822</span> </span><span class="WHIT"> </span><span class="NAME">addZero</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>823</span>
|
||
<span class='line'>824</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">i.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'一十'</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">i.substr</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">zero</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>825</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">'點'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>826</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>827</span>
|
||
<span class='line'>828</span> </span><span class="COMM">// 轉換成金錢表示法</span><span class="WHIT">
|
||
<span class='line'>829</span> </span><span class="COMM">//turnToMoney[generateCode.dLK]='to_Chinese_numeral';</span><span class="WHIT">
|
||
<span class='line'>830</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">turnToMoney</span><span class="PUNC">(</span><span class="NAME">num</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>831</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="NAME">num</span><span class="PUNC">=</span><span class="NAME">to_Chinese_numeral</span><span class="PUNC">(</span><span class="NAME">num</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="STRN">'點'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>832</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">?</span><span class="NAME">num</span><span class="PUNC">+</span><span class="STRN">'圓整'</span><span class="PUNC">:</span><span class="NAME">num.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'圓'</span><span class="PUNC">+</span><span class="NAME">num.charAt</span><span class="PUNC">(</span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'角'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="PUNC">++</span><span class="NAME">i</span><span class="PUNC">==</span><span class="NAME">num.length</span><span class="PUNC">?</span><span class="STRN">''</span><span class="PUNC">:</span><span class="NAME">num.charAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'分'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">num.substr</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>833</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>834</span>
|
||
<span class='line'>835</span>
|
||
<span class='line'>836</span> </span><span class="COMM">// 分斷行 2003/1/25 22:40</span><span class="WHIT">
|
||
<span class='line'>837</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">getText</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="COMM">//html→text</span><span class="WHIT">
|
||
<span class='line'>838</span> </span><span class="WHIT"> </span><span class="COMM">//<.+?> <[^>]+> <\s*\/?\s*[a-zA-Z](.*?)> <! 過慢?</span><span class="WHIT">
|
||
<span class='line'>839</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.valueOf</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<s>[^<]*<\/s>/gi</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<w?br[^>]*>/gi</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'\n'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/<\/?[A-Za-z][^>]*>/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>840</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>841</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">trimStr_</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>842</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">lt</span><span class="PUNC">,</span><span class="NAME">lt2</span><span class="PUNC">,</span><span class="NAME">gt</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">,</span><span class="NAME">I</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="COMM">//less than,great than,index,left count index(left length now),text now,text index</span><span class="WHIT">
|
||
<span class='line'>843</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">I</span><span class="PUNC"><</span><span class="NAME">s.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>844</span> </span><span class="WHIT"> </span><span class="COMM">//將lt,gt定在下一label之首尾,i為下一次搜尋起點.label定義:/<.+?>/</span><span class="WHIT">
|
||
<span class='line'>845</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">lt</span><span class="PUNC">=</span><span class="NAME">s.indexOf</span><span class="PUNC">(</span><span class="STRN">'<'</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>846</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">gt</span><span class="PUNC">=</span><span class="NAME">s.indexOf</span><span class="PUNC">(</span><span class="STRN">'>'</span><span class="PUNC">,</span><span class="NAME">lt</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">lt</span><span class="PUNC">=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>847</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">gt</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">lt</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">lt2</span><span class="PUNC">=</span><span class="NAME">s.indexOf</span><span class="PUNC">(</span><span class="STRN">'<'</span><span class="PUNC">,</span><span class="NAME">lt</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">&&</span><span class="NAME">lt2</span><span class="PUNC"><</span><span class="NAME">gt</span><span class="PUNC">)</span><span class="NAME">lt</span><span class="PUNC">=</span><span class="NAME">lt2</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>848</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">lt</span><span class="PUNC">=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>849</span> </span><span class="WHIT"> </span><span class="COMM">//if(s.indexOf('')!=-1)alert(i+','+lt+','+gt+';'+l+','+c+'\n'+t);</span><span class="WHIT">
|
||
<span class='line'>850</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">lt</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="NAME">gt</span><span class="PUNC">=</span><span class="NAME">lt</span><span class="PUNC">=</span><span class="NAME">s.length</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>851</span> </span><span class="WHIT"> </span><span class="COMM">//未來:考慮中英文大小,不分隔英文字。前提:'A'<'z'..或許不用</span><span class="WHIT">
|
||
<span class='line'>852</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">I</span><span class="PUNC">+</span><span class="NAME">c</span><span class="PUNC"><=</span><span class="NAME">lt</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">t</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">s.substr</span><span class="PUNC">(</span><span class="NAME">I</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">?</span><span class="STRN">'\n'</span><span class="PUNC">:</span><span class="STRN">'<br/>'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">I</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">;</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>853</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NAME">s.slice</span><span class="PUNC">(</span><span class="NAME">I</span><span class="PUNC">,</span><span class="NAME">gt</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">c</span><span class="PUNC">-</span><span class="PUNC">=</span><span class="NAME">lt</span><span class="PUNC">-</span><span class="NAME">I</span><span class="PUNC">;</span><span class="NAME">I</span><span class="PUNC">=</span><span class="NAME">gt</span><span class="PUNC">+</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>854</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>855</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>856</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>857</span> </span><span class="COMM">/* 將字串以長l分隔
|
||
<span class='line'>858</span> m==0: html用, 1:text
|
||
<span class='line'>859</span> */</span><span class="WHIT">
|
||
<span class='line'>860</span> </span><span class="COMM">//trimStr[generateCode.dLK]='trimStr_';</span><span class="WHIT">
|
||
<span class='line'>861</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">trimStr</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>862</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">this.valueOf</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">sp</span><span class="PUNC">=</span><span class="STRN">'<br/>'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>863</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">s</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">l</span><span class="PUNC">||</span><span class="NAME">l</span><span class="PUNC"><</span><span class="NUMB">1</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">String.fromCharCode</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">?</span><span class="NAME">s.gText</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">:</span><span class="NAME">s</span><span class="PUNC">;</span><span class="COMM">//||!String.charCodeAt:v5.5</span><span class="WHIT">
|
||
<span class='line'>864</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">s.turnU</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//(m):這樣就不用再費心思了.不過既然都作好了,就留著吧..不,還是需要</span><span class="WHIT">
|
||
<span class='line'>865</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">s.length</span><span class="PUNC"><=</span><span class="NAME">l</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>866</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">m</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">s.replace</span><span class="PUNC">(</span><span class="REGX">/<w?br([^>]*)>/gi</span><span class="PUNC">,</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>867</span>
|
||
<span class='line'>868</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">s.split</span><span class="PUNC">(</span><span class="NAME">sp</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">?</span><span class="STRN">'\n'</span><span class="PUNC">:</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//deal with line</span><span class="WHIT">
|
||
<span class='line'>869</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>870</span> </span><span class="WHIT"> </span><span class="COMM">// 預防JS5不能push</span><span class="WHIT">
|
||
<span class='line'>871</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">s.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="NAME">t.push</span><span class="PUNC">(</span><span class="NAME">trimStr_</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>872</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.valueOf</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>873</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t.join</span><span class="PUNC">(</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>874</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>875</span>
|
||
<span class='line'>876</span>
|
||
<span class='line'>877</span>
|
||
<span class='line'>878</span>
|
||
<span class='line'>879</span>
|
||
<span class='line'>880</span> </span><span class="COMM">//-----------------------------------------------------------------------------</span><span class="WHIT">
|
||
<span class='line'>881</span>
|
||
<span class='line'>882</span>
|
||
<span class='line'>883</span> </span><span class="COMM">//mode=1:不取空字串</span><span class="WHIT">
|
||
<span class='line'>884</span> </span><span class="COMM">// .split() appears from Internet Explorer 4.0</span><span class="WHIT">
|
||
<span class='line'>885</span> </span><span class="COMM">// <a href="http://msdn.microsoft.com/en-us/library/s4esdbwz%28v=VS.85%29.aspx" accessdate="2010/4/16 20:4">Version Information (Windows Scripting - JScript)</a></span><span class="WHIT">
|
||
<span class='line'>886</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">strToArray</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>887</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">last</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>888</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.indexOf</span><span class="PUNC">(</span><span class="NAME">sp</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">last</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>889</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">last</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">a.length</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.slice</span><span class="PUNC">(</span><span class="NAME">last</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>890</span> </span><span class="WHIT"> </span><span class="NAME">last</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>891</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>892</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">last</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">s.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">[</span><span class="NAME">a.length</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.slice</span><span class="PUNC">(</span><span class="NAME">last</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>893</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>894</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>895</span>
|
||
<span class='line'>896</span> </span><span class="COMM">//去除s之空白,包括字與字之間的</span><span class="WHIT">
|
||
<span class='line'>897</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">disposeSpace</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>898</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>899</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">last</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>900</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.indexOf</span><span class="PUNC">(</span><span class="STRN">' '</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">last</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>901</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.slice</span><span class="PUNC">(</span><span class="NAME">last</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">last</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>902</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.slice</span><span class="PUNC">(</span><span class="NAME">last</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>903</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>904</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>905</span>
|
||
<span class='line'>906</span> </span><span class="COMM">//以label,mode:m置換s,先找到先贏</span><span class="WHIT">
|
||
<span class='line'>907</span> </span><span class="COMM">//輸入t['$k']=..會有問題,需用t['\\$k']=..</span><span class="WHIT">
|
||
<span class='line'>908</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">changeV</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>909</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">re</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//var I='';</span><span class="WHIT">
|
||
<span class='line'>910</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'g'</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>911</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">t</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">label</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>912</span> </span><span class="WHIT"> </span><span class="COMM">//I+=', '+i+'='+t[i];</span><span class="WHIT">
|
||
<span class='line'>913</span> </span><span class="WHIT"> </span><span class="NAME">re</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>914</span> </span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s.replace</span><span class="PUNC">(</span><span class="NAME">re</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//r=s.replace(re,t[i]);s=r;</span><span class="WHIT">
|
||
<span class='line'>915</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>916</span> </span><span class="WHIT"> </span><span class="COMM">//pLog(I.substr(2));</span><span class="WHIT">
|
||
<span class='line'>917</span> </span><span class="WHIT"> </span><span class="COMM">//pLog('changeV:'+s);</span><span class="WHIT">
|
||
<span class='line'>918</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>919</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>920</span>
|
||
<span class='line'>921</span> </span><span class="COMM">/*
|
||
<span class='line'>922</span> //以label置換s,先找到先贏
|
||
<span class='line'>923</span> function changeV(s) {
|
||
<span class='line'>924</span> for (var i, j = 0; j < labelN.length; j++)
|
||
<span class='line'>925</span> if ((i = s.indexOf(labelN[j])) != -1)
|
||
<span class='line'>926</span> s = s.slice(0, i) + labelV[j] + s.slice(i + labelN[j].length)
|
||
<span class='line'>927</span> , j = 0; //research from begin
|
||
<span class='line'>928</span> return s;
|
||
<span class='line'>929</span> }
|
||
<span class='line'>930</span> */</span><span class="WHIT">
|
||
<span class='line'>931</span>
|
||
<span class='line'>932</span>
|
||
<span class='line'>933</span>
|
||
<span class='line'>934</span> </span><span class="COMM">//TODO: Object.keys(obj)</span><span class="WHIT">
|
||
<span class='line'>935</span> </span><span class="COMM">// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys</span><span class="WHIT">
|
||
<span class='line'>936</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>937</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>938</span> </span><span class="NAME">get_Object_key</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>939</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_.is_Array</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>940</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>941</span> </span><span class="WHIT"> </span><span class="COMM">//if (!_.is_Object(o)) return;</span><span class="WHIT">
|
||
<span class='line'>942</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>943</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>944</span> </span><span class="WHIT"> </span><span class="NAME">l.push</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>945</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>946</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>947</span>
|
||
<span class='line'>948</span> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>949</span> </span><span class="PUNC">.</span><span class="WHIT">
|
||
<span class='line'>950</span> </span><span class="NAME">get_Object_value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
||
<span class='line'>951</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_.is_Array</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>952</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>953</span> </span><span class="WHIT"> </span><span class="COMM">//if (!_.is_Object(o)) return;</span><span class="WHIT">
|
||
<span class='line'>954</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>955</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT">
|
||
<span class='line'>956</span> </span><span class="WHIT"> </span><span class="NAME">l.push</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>957</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">l</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>958</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>959</span>
|
||
<span class='line'>960</span>
|
||
<span class='line'>961</span>
|
||
<span class='line'>962</span>
|
||
<span class='line'>963</span>
|
||
<span class='line'>964</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
||
<span class='line'>965</span> </span><span class="WHIT"> </span><span class="NAME">CeL.data</span><span class="WHIT">
|
||
<span class='line'>966</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>967</span> </span><span class="PUNC">}</span><span class="WHIT">
|
||
<span class='line'>968</span>
|
||
<span class='line'>969</span>
|
||
<span class='line'>970</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
||
<span class='line'>971</span>
|
||
<span class='line'>972</span> </span></pre></body></html> |