0
如何使evancz/url解析器匹配路徑的開始並返回路徑的其餘部分作爲字符串? 例如:如何使evancz/url解析器返回字符串的其餘部分?
s "search" </> string |> format Search
如果路徑是一樣的東西「搜索/文本/與/斜線」
我期望能獲得與「文/與/斜線」搜索字符串作爲有效載荷不匹配。
如何使evancz/url解析器匹配路徑的開始並返回路徑的其餘部分作爲字符串? 例如:如何使evancz/url解析器返回字符串的其餘部分?
s "search" </> string |> format Search
如果路徑是一樣的東西「搜索/文本/與/斜線」
我期望能獲得與「文/與/斜線」搜索字符串作爲有效載荷不匹配。
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