2016-09-27 24 views
0

如何使evancz/url解析器匹配路徑的開始並返回路徑的其餘部分作爲字符串? 例如:如何使evancz/url解析器返回字符串的其餘部分?

s "search" </> string |> format Search 

如果路徑是一樣的東西「搜索/文本/與/斜線」

我期望能獲得與「文/與/斜線」搜索字符串作爲有效載荷不匹配。

回答

1

evancz/url-parser似乎只處理由'/'分隔的段。 我想你必須編寫自己的解析器。 (這裏,我與yourparser集成在一起,這是你現有的分析器使用url解析器)

urlParser : Navigation.Parser (Result String String) 
urlParser = 
    let 
    parser : Navigation.Location -> (Result String String) 
    parser location = 
     Maybe.oneOf 
     [ Result.toMaybe (yourparser location) 
     , Result.toMaybe (extractSearch location.pathname) 
     ] 
     |> Result.fromMaybe "parse error" 
    extractSearch pathname = 
     if String.startsWith "/search/" pathname 
     then Ok (String.dropLeft 8 pathname) 
     else Err "failed to extract search string" 
    in Navigation.makeParser yourparser 
相關問題