首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >电话号码Zod验证

电话号码Zod验证
EN

Stack Overflow用户
提问于 2022-10-25 11:04:44
回答 1查看 36关注 0票数 -1

我刚开始使用zod来验证。我已经阅读了文档,但是我可以看到任何关于如何为电话号码添加验证的内容。

我使用电子邮件一,以确保用户输入正确的电子邮件,但我如何做同样的电话号码。

目前的情况如下:

代码语言:javascript
运行
复制
contactNumber: z
    .string()
    .min(10, { message: 'Must be a valid mobile number' })
    .max(14, { message: 'Must be a valid mobile number' }),

我只是不确定这是否正确。我将其设置为字符串,因为我希望用户能够在必要时将+放在数字前面,例如:+27823456787。我不希望用户能够在数字示例: 072r536e98中放置任何字母,如果用户输入字母,我希望收到一条错误消息,说明“必须是一个有效的数字”。

有人能告诉我正确的为什么要做验证吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-26 07:28:29

您可以使用zod refinement将更有能力进行检查的库中的检查链接在一起。正如评论中所提到的那样,这些规则是复杂的,而且是针对该区域的。

例如,validator.js似乎有一个验证,可以使用isMobilePhonestring细化为移动电话号码,但是您可能希望/需要让用户指定他们所处的国家。

这将如何运作的一个例子可能是:

代码语言:javascript
运行
复制
import { z } from "zod";
import validator from "validator";

const schema = z.object({
  name: z.string(),
  phone: z.string().refine(validator.isMobilePhone)
});

console.log(
  schema.safeParse({
    name: "test",
    phone: "+1-212-456-7890"
  })
); // Success

console.log(
  schema.safeParse({
    name: "test",
    phone: "2124567890"
  })
); // Success

console.log(
  schema.safeParse({
    name: "test",
    phone: "1234"
  })
); // Failure
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74193093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档