<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ricegun

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      2 Posts :: 4 Stories :: 3 Comments :: 0 Trackbacks

    怎么用 javascript 做數(shù)據(jù)的格式化

    ?

    作者:老 K

    ???????? 我們?cè)陧?xiàng)目中都有用過(guò)金額數(shù)字及日期等數(shù)據(jù)格式化輸出顯示,比如前面加上“¥”,數(shù)值取小數(shù)點(diǎn)后兩位,短日期時(shí)間等。一般的高級(jí)語(yǔ)言及開(kāi)發(fā)工具都有提供相應(yīng)的轉(zhuǎn)換函數(shù)如 format 之類,可是我在最近做 web 網(wǎng)上銀行相關(guān)的系統(tǒng)時(shí),卻遇到這個(gè)很麻煩的問(wèn)題,就是 javascript 不提供這種 format 函數(shù),查了些資料,知道 vbscript 是有格式化函數(shù)的,可是 vbscript 是微軟專用的,無(wú)奈只好用正則表達(dá)式,可正則表達(dá)式也不能夠很通用地解決各種類型轉(zhuǎn)換問(wèn)題,真的是很郁悶,無(wú)意中找到看到一個(gè) AJAX 開(kāi)發(fā)工具的演示(工具下載地址是點(diǎn)擊鏈接),看到它的數(shù)據(jù)有顯示“¥”和數(shù)值小數(shù)點(diǎn)后兩位格式化,馬上下載了看了下,發(fā)現(xiàn)它居然是用 javascript+XSL 實(shí)現(xiàn)了通用的格式化函數(shù),下載 AJAX WebShop 后,我找到它的 system.js 這個(gè)文件,打開(kāi)找到以下函數(shù):

    function FormatFloat(value,mask)

    {

    ???????? return BasicFormat(value,mask,'FormatNumber')

    }

    function FormatDate(varDate, bstrFormat, varDestLocale)

    {

    ???????? return BasicFormat(varDate,bstrFormat,'FormatDate',varDestLocale);

    }

    function FormatTime(varTime, bstrFormat, varDestLocale)

    {

    ???????? return BasicFormat(varTime,bstrFormat,'FormatTime',varDestLocale);

    }

    function BasicFormat(value,mask,action,param)

    {

    ???????? var xmlDoc;

    ???????? var xslDoc;

    ???????? var v=''+value+''+mask+'';

    ???????? xmlDoc=parseXML(v);

    ?

    ???????? var x;

    ???????? if(isIE)

    ?????????????????? x=''

    ???????? else

    ?????????????????? x='';

    ???????? x+='';

    ???????? if(isIE) {

    ?????????????????? x+=''+action+'('+value+',"'+mask+'"';

    ?????????????????? if(param)x+=','+param;

    ?????????????????? x+=')';

    ???????? }

    ???????? else

    ?????????????????? x+='';

    ?

    ???????? x+='';

    ???????? xslDoc=parseXML(x);

    ???????? var s;

    ???????? if(isIE)

    ???????? ?s= xmlDoc.transformNode(xslDoc)

    ???????? else{

    ?????????????????? //for mozilla/netscape

    ??????? var processor = new XSLTProcessor();

    ?????????????????? processor.importStylesheet(xslDoc);

    ?????????????????? var result = processor.transformToFragment(xmlDoc, xmlDoc);

    ??????? var xmls = new XMLSerializer();

    ??????? s = xmls.serializeToString(result);

    ???????? }

    ???????? return s;

    }

    看來(lái)他們對(duì) xsl 用得可真是出神入化了,居然這樣就可以實(shí)現(xiàn)很通用的格式化轉(zhuǎn)換了,當(dāng)然不客氣了,直接加到我的函數(shù)庫(kù)中哈。

    ???????? 這個(gè)代碼偶沒(méi)有看得很懂,不過(guò)確實(shí)很管用,請(qǐng)對(duì) XSL 精通的朋友分析下也好讓我們學(xué)習(xí)下。

    posted on 2007-01-05 09:22 第七日 閱讀(972) 評(píng)論(1)  編輯  收藏

    Feedback

    # re: 怎么用javascript做數(shù)據(jù)的格式化[未登錄](méi) 2007-06-03 00:38 -274°C
    如果可以的話,能給我一個(gè)嗎?謝謝了。
    我QQ 是 51411970
    郵箱是 hechangmin1983@126.com
    我對(duì)xsl也不熟悉,我只是希望在頁(yè)面上用到格式化。
    下載時(shí)候,我這邊有點(diǎn)問(wèn)題。  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久精品国产亚洲av高清漫画| 四虎成人免费观看在线网址| 亚洲一级黄色视频| 亚洲国产成人精品无码区二本| 67194成是人免费无码| 亚洲国产精品久久久久婷婷老年| 91视频精品全国免费观看| 亚洲精品岛国片在线观看| 亚洲线精品一区二区三区| 久久www免费人成精品香蕉| 亚洲婷婷五月综合狠狠爱| 在线观看免费播放av片| 亚洲一区二区成人| 3d动漫精品啪啪一区二区免费| 久久亚洲AV成人无码国产| 精品香蕉在线观看免费| 亚洲中文字幕久久无码| 蜜臀91精品国产免费观看| 国产性爱在线观看亚洲黄色一级片| 人妻仑刮八A级毛片免费看| **aaaaa毛片免费| 亚洲不卡影院午夜在线观看| 日本不卡视频免费| 中文无码日韩欧免费视频| 亚洲伊人久久大香线蕉苏妲己| 全免费毛片在线播放| 亚洲乱码无码永久不卡在线 | 国产亚洲视频在线| 亚洲中文字幕无码不卡电影| 久久成人免费电影| 亚洲啪AV永久无码精品放毛片| 亚洲高清偷拍一区二区三区 | 欧洲 亚洲 国产图片综合| 在线观看亚洲免费| 一日本道a高清免费播放| 夜夜亚洲天天久久| 国产无遮挡吃胸膜奶免费看| 91大神亚洲影视在线| 午夜电影免费观看| 成全视频高清免费观看电视剧| 亚洲乱码一二三四区乱码|