url
字符串是使用允许协议的链接。默认只允许 http 和 https。
签名
ts
function url(msg?: Message, protocols?: string[]): Action<string>参数
| 参数 | 类型 | 说明 |
|---|---|---|
msg | Message | 自定义错误信息 |
protocols | string[] | 允许的协议。默认为 ['http', 'https'] |
错误代码
| 代码 | 触发条件 | 默认信息 |
|---|---|---|
url | 不是链接或协议不允许 | Invalid URL |
可以修改这些文本:见 错误信息与国际化。
注意事项
javascript: 和 data: 链接无法通过 —— 该值可以安全地放入 href。没有协议的域名(example.com)也会报错:可以用 preprocess 补上协议,或用 startsWith 检查。
示例
ts
const Profile = object({
website: optional(pipe(string(), trim(), url())),
ftp: optional(pipe(string(), url(undefined, ['ftp', 'sftp']))),
});