You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADB2C自定义注册表单特殊手机号校验实现方案咨询

ADB2C注册手机号自定义校验(拦截全相同数字无效号码)可行方案

以下三种方案都适配自定义政策的技术架构,可根据你的业务需求选择:

方案1:自定义政策内置正则校验(最推荐,无额外服务依赖)

这个方案的校验逻辑直接在ADB2C服务端执行,就算用户绕过前端规则也无法提交,可靠性最高:

  • 找到注册用户流中对应手机号的ClaimType定义,在Restriction节点下新增正则校验规则
  • 匹配规则用正则^(?!(\d)\1{9})\d{10}$即可,逻辑是只允许10位数字,同时排除10位全部为相同数字的情况
  • 配套配置自定义错误提示,拦截时直接展示给用户
    参考配置示例:
<ClaimType Id="phoneNumber">
  <DisplayName>手机号码</DisplayName>
  <DataType>String</DataType>
  <UserInputType>TextBox</UserInputType>
  <Restriction>
    <Pattern RegularExpression="^(?!(\d)\1{9})\d{10}$" HelpText="请输入10位有效手机号码"/>
    <ErrorMessage>手机号码无效,不可使用全部为相同数字的10位号码</ErrorMessage>
  </Restriction>
</ClaimType>

方案2:自定义页面嵌入前端JS校验

如果你的自定义政策使用了自定义HTML托管页面,可以用这个方案做前置拦截,减少服务端请求:

  • 在自定义注册页面的HTML中新增JS脚本,监听手机号输入框的blur事件或者表单提交事件
  • 编写校验逻辑:const isInvalidPhone = /^(\d)\1{9}$/.test(用户输入的手机号),如果返回true说明是全相同数字的无效号码
  • 校验不通过时阻止表单提交,在页面对应位置展示错误提示即可

注意:该方案属于前端校验,容易被用户篡改绕过,不要单独使用,建议配合服务端校验规则一起部署。

方案3:对接REST API技术配置文件校验

如果后续还有更复杂的手机号校验需求(比如校验号段合法性、是否是虚拟号等),可以选择这个灵活度最高的方案:

  • 自行开发一个简单的REST接口,接收手机号参数,返回校验结果和错误提示
  • 在自定义政策中新增REST API类型的技术配置文件,在注册流程的编排步骤里,插入调用该接口的步骤,位置放在用户提交信息之后、创建账号之前
  • 接口返回校验失败时,直接中断注册流程,返回错误信息展示给用户即可

内容的提问来源于stack exchange,提问作者CloudSpace03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:45:03