pCloud Partner Program

Regular Expression在Javscript下的兩種作法

程式技術/Javascript 2007/06/22 09:05
views: 112152 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 09: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 05: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] : ... [363] : [364] : [365] : [366] : [367] : [368] : [369] : [370] : [371] : ... [462] : NEXT



Nextbit Robin 5.2吋六核心智慧型手機 Microsoft Office 365 中文家用版PKC (無光碟)
ASUS華碩 AC1900 雙頻無線路由器 RT-AC68U 美國 VORNADO 533 渦流空氣循環機 (黑色)
御茶園 每朝健康綠茶(650mlx24入) 每朝健康 雙纖綠茶(650mlx24入)


 Waiting...