為了防止路由器比對到無效的輸入,您可以指定一個比對器。例如,您可能希望像 /colors/[value]
這樣的路由比對像 /colors/ff3e00
這樣的十六進位值,但不會比對像 /colors/octarine
這樣的命名顏色或任何其他任意輸入。
首先,建立一個名為 src/params/hex.js
的新檔案,並從中匯出一個 match
函式
src/params/hex
export function match(value) {
return /^[0-9a-f]{6}$/.test(value);
}
然後,要使用新的比對器,將 src/routes/colors/[color]
重新命名為 src/routes/colors/[color=hex]
。
現在,每當有人導覽到該路由時,SvelteKit 都會驗證 color
是否為有效的 hex
值。如果不是,SvelteKit 會嘗試比對其他路由,最終返回 404。
比對器會在伺服器和瀏覽器中執行。
1
2
<h1>color picker</h1>