电话规范化规则

 

上一次修改主题: 2010-12-14

在 Lync Server 2010 中,从通讯簿服务接收号码后,会应用规范化规则。在应用规范化规则之前,通讯簿服务会从电话号码中删除任何空格和非必需字符。非必需字符的示例:!、@, .、- 和 *。

该处理顺序简化了规范化规则,因为无需再考虑电话号码中可能存在空格或非必需字符。在进行规范化之前调整号码格式的方式变更是为了与 Lync Server 产品的其他部分中的规范化方法保持一致。这种处理顺序也简化了需相应调整在客户端中显示的号码格式的规范化规则。

在以前的版本中,规范化规则的正则表达式可能类似如下:

^\(?(\d\{3})?[\s\-\./](\d{3})[\s()\-\./](\d{4})[\s]*[x|X](\d{5})$

+1$1$2$3;ext=$4

以前的规则在 Lync Server 中可以重写为以下格式,使其中不包含任何空格或非必需字符:

(\d{10})[x|X](\d{5})

+1$1;ext=$2

新的处理方法有可能使某些在以前版本的 Office Communications Server 中起作用的规范化规则失效。由于现在是在删除空格和其他特定字符后应用规则,因此,包含这些特定字符的正则表达式不再按预期起作用。例如:

\s*\(\s*\d\d\d\s*\)\s*\-\s*\d\d\d\s*\-\s*\d\d\d\d

此表达式无效,因为预处理过程中删除了“-”字符。()- 的匹配形式不能再匹配输入字符串中的预期字符。要使以前的正则表达式能够与新的预处理格式结合使用,现在可以将其简化为如下形式:

\d{10}

新的正则表达式规则仅匹配 10 位数字。