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

在Azure B2C自定义策略中提取手机号中的国家代码

Azure B2C自定义策略提取手机号国家代码方案

内置函数情况

Azure B2C自定义策略的内置字符串操作函数中,没有专门提取手机号国家代码的专用函数,但可以通过现有字符串函数组合实现需求。

高效可靠的实现方式

针对你提供的"+852 91031201"格式(+国家代码 手机号,空格分隔),推荐两种实现方式:

方法1:Split字符串拆分法

利用SplitString函数按空格拆分手机号,提取第一个分段后去掉开头的+:

  1. 第一步:拆分手机号为两个部分
<ClaimsTransformation Id="SplitMobilePhone" TransformationMethod="SplitString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="mobilePhone" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="delimiter" DataType="string" Value=" " />
    <InputParameter Id="splitOutputClaimType" DataType="string" Value="stringCollection" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="mobilePhoneParts" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  1. 第二步:提取第一个分段并移除开头的+
<ClaimsTransformation Id="ExtractCountryCode" TransformationMethod="StringReplace">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="mobilePhoneParts" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="position" DataType="int" Value="0" />
    <InputParameter Id="oldValue" DataType="string" Value="+" />
    <InputParameter Id="newValue" DataType="string" Value="" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="countryCode" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>

方法2:截取子串法

通过IndexOf找到空格位置,再用Left截取国家代码部分并移除+:

<ClaimsTransformation Id="GetCountryCodeFromMobile" TransformationMethod="Left">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="mobilePhone" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="length" DataType="int" Value="-1" />
    <InputParameter Id="findDelimiter" DataType="string" Value=" " />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="countryCodeWithPlus" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>

<ClaimsTransformation Id="RemovePlusFromCountryCode" TransformationMethod="StringReplace">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="countryCodeWithPlus" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="oldValue" DataType="string" Value="+" />
    <InputParameter Id="newValue" DataType="string" Value="" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="countryCode" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>

注意事项

  • 确保用户手机号格式统一为+国家代码 手机号(带空格分隔),如果存在格式不统一的情况,建议先添加格式验证的ClaimsTransformation,避免提取失败。
  • 若需处理无空格的格式(如+85291031201),则需要结合国家代码规则库进行匹配,这种情况建议在自定义REST API中实现更灵活的提取逻辑,再通过B2C的RESTful技术配置调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:11:09