Re: [問題] 請教一下這行程式碼是什麼意思
這是 Regular Expression(RE)
其中的兩個斜線 // 是宣告 RE 用的
例如 var aRE = /this is a regluar expression/;
Regular Expression 是用來尋找/比對/取代某種特徵的字串用的
比方說上面的 aRE,
我們可以用 aRE 來檢查一個字串中有沒有 "this is a regular expression"
例如, aRE.test("blah blah blathis is a regular expressionblah");
至於斜線後面的 i 是 modifier, 代表比對的時候忽略大小寫
所以 /perl/i 可以比對到 Perl pErl perL PERL 等
反斜線點 (\.) 就是代表點(.) 因為在 RE ,點(.)有特殊意義
所以當我們真的要檢查字串中有沒有點(.)的時候,
RE 告訴我們在前面加一個反斜線 (\) 就行了
最後,在 RE 中 中括號 ([]) 也是有特殊意義的
簡單的用中文說他代表比對括號中任一個字元的其中一個
所以 /5\.[56789]/ 可以找到 5.5 5.6 5.7 5.8 5.9,但是找不到 5.1 5.2 5.X 5.%
結論就是, var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent );
可以不管大小寫地找到 "msie 5.5" "msie 5.6" "msie 5.7" "msie 5.8" "msie 5.9"
當 navigator.userAgent 中含有這些字串的時候,
我們就把這個 browser 視為 ie55
這就是這整句話說的故事。
※ 引述《invers0412 (@@)》之銘言:
: var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent );
: 我知道是在作判斷browser version, 但是語法不懂
--
╭════┬════┬════┬════┬════┬═─╭═╮╮
║████ █▋◢█│████ ███◣│███◣ █▋╯◢║│
║◤██◥│███◤╰╮██ │█◣ █ █◣ ◤│█▋◢█║│
╰╮██╭╯███◣╭╯██ ███◥│█◤ ◣│◥██◤╰╮
│║██║│█▋◥█│████│█◥█◣ ████╰╮██ ●║
╰╰══┴┴════┴════┴════┴════┴╰════╯
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.52
推
220.228.96.198 05/16, , 1F
220.228.96.198 05/16, 1F
Web_Design 近期熱門文章
PTT數位生活區 即時熱門文章