看板 Ajax 關於我們 聯絡資訊
ie對字串的split處理和firefox不一樣 代碼如下: <script> var sDebug="1,2,,3,4,,,5"; alert(sDebug.split(",")); //show "1,2,,3,4,,,5" in ie7 and firefox4 alert(sDebug.split(/,/g)); //show "1,2,,3,4,,,5" in firefox4 //show "1,2,3,4,5" in ie7 </script> 用正規表示式的時候,對多個連續分隔符,ie會自動合並 這個處理顯然是多余的,也可以說是錯誤的 因為通過不同的正規表示式 /,+/ 也可以做到自動合並 而且發現iis對split的處理存在同樣問題 不知道是不是MS的js解釋器的bug -- 隨便看看部落格 http://blog.numino.net -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.91.213.122 ※ 編輯: Numino 來自: 218.91.213.122 (07/23 09:39)
senser:我到不覺得是個bug 因為,,,用/,/檢驗 是會過的 ,,也是 07/23 16:26
senser:當然,也沒錯 邏輯上都可以當separator 07/23 16:27
Numino:文中提到的例子,在ie下 /,/ 和/,+/ 就沒差了 07/23 19:00
Numino:一個case需要split(/[\n\r]/),在ie下多個\n就被合並成一個 07/23 19:03
Numino:想了好久,沒想到簡單的解決辦法 07/23 19:05
Numino:而且如s大所說,"1,2,3,4,5" 用/,/檢驗也會過,總覺得ie處理 07/23 19:07
Numino:欠妥 07/23 19:07
senser:只要一個的話 要不要試試前後加個^ 和$ 像這樣 /^[\n\r]$/ 07/24 06:41
Numino:還是不行,\n\r本身也會被理解成$^,會出現奇怪的結果 07/24 09:16
senser:那就試/[\n\r]{1}/ 吧 看看ok不ok lol 07/25 04:38
Numino:試過,不行,還試過 /[\n\r]+?/,也不行 07/25 14:02
senser:我剛開了ie 試一下 發現用regex真的搞不出來 然後我查了 07/25 16:06
senser:一下 split() 發現好像沒有提到他可以塞RegEx 所以我就試了 07/25 16:07
senser:.split("\n") 好像就ok了 不知道他分割的結果是你想要的嗎 07/25 16:08
Numino:我原文裡就是說','沒問題了,如果"\n"可以解決就好了 07/25 17:23
Numino:問題是\n或\r都有可能,後來把\r replace成\n,結果也很怪 07/25 17:25
senser:你可以用regex把\r換成\n 然後再做split("\n") 這樣不行? 07/28 14:10
Numino:回樓上,試過了,結果很怪,最後是逐個判斷char完成的,真辛苦 07/28 20:08