pCloud Partner Program

Regular Expression在Javscript下的兩種作法

程式技術/Javascript 2007/06/22 15:05
views: 119221 times
今天要幫朋友做一個解析 javascript 字串的範例, 其實硬 parse 也是很簡單, 但還是想用更好的方法來進行, 於是利用了 javascript 的 Regular Expression 來做 parse 的行為.

在 javascript 中, 使用 Regular Expression 的方式有兩種, 一種是利用 new RegExp , 一種是直接用 perl 的那種語法 /xxxxx/ 的方式, 我們來看看怎麼做吧:

題目是將網址列中的某一參數取出來, 例如 param 這個參數,
http://host/j.htm?a=1&param=data&b=2
其中的 param 參數的值為 data, 利用 Regular Expression 的取出方式如下:



利用了比對字串 param=([a-z]+) 來將 param 的參數值取出, 其中的 m 內容將會是 [0] 為整個 Regular Expression 的字串, [1] 會是第一個取出的值, 若有多個比對的 () 小括號, 就放到 [2], [3]... 以此類推.

這樣的執行結果就會取出 "data" 這個值.

more..

top

Trackback Address :: http://diary.tw/tim/trackback/192

  1. allenliao 2007/06/22 15:42 MODIFY/DELETE REPLY

    提姆老大~
    剛試了一下~中文也OKㄟ~
    Regexp:\bt[a-z]+廖[0-9]*[a-z]*\b

    Subject string:This is a tes廖0t of the JavaScript RegExp object

    找到MATCH的字串>>"tes廖0t"

    正規式的中文範圍不知道要怎麼表達

    • Timothy 2007/06/24 11:55 MODIFY/DELETE

      Regulare Expression 目前並沒有針對中文進行設計解析的能力, 不過是可以用 fixed pattern (也就是你舉例的方式) 進行比對, 不過有時會有誤判的問題, 這個要特別注意, 可以參考: http://phi.sinica.edu.tw/aspac/reports/94/94019/ch2.html
      引用文字: 在含有中文之文字檔中, 使用 Regular Expression 進行字串找尋時, 可能會發生錯誤. 譬如 : 找尋左大括號"{", 結果中文的"程"也被找出. 這並非 Regular Expression 出了錯誤. 因每個中文字都是由 2 個 bytes 組成, 而中文"程"字的後一個 byte 恰 被解釋成"{".

Write a comment


PREV : [1] : ... [410] : [411] : [412] : [413] : [414] : [415] : [416] : [417] : [418] : ... [509] : NEXT



AGI 亞奇雷 240GB 2.5吋 SATA3 SSD 固態硬碟
TEAM十銓 L5 Lite 3D 1TB 2.5吋 SSD固態硬碟
統一 番茄汁(6入/組)
UNITEK TYPE-C 轉VGA/HDMI/PD充電/HUB 鋁合金多功能轉接器
亞果元素 CASA Hub VH1 Type-C 轉 VGA - HDMI二合一顯示轉接器


 Waiting...