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

如何判断字符是否为字母 从电话号码中提取联系人姓名

电话号码联系人姓名提取实现

场景说明

现有电话号码数据集部分号码末尾会在圆括号内标注联系人姓名,需提取姓名存入独立备注字段,数据样例如下:

(517)234-6789(Bob)
701-556-2345
(325)663-5977
(215)789-8585
425-557-7745(Pauline)

由于电话号码的区号同样使用圆括号包裹,无法通过匹配左括号(直接定位姓名起始位置,因此采用逐字符遍历字符串、拼接所有字母字符得到姓名的实现逻辑,需要替换伪代码中虚构的IS_ALPHA字符判断方法。

可运行代码(适配Progress OpenEdge ABL)

伪代码语法对应Progress OpenEdge ABL(原Progress 4GL),调整后可直接运行的完整过程如下:

PROCEDURE CreatePhoneNote (INPUT cPhone AS CHARACTER):
    DEFINE VARIABLE cPersonName AS CHARACTER NO-UNDO INITIAL "".
    DEFINE VARIABLE cThisChar AS CHARACTER NO-UNDO.
    DEFINE VARIABLE iCount AS INTEGER NO-UNDO.

    DO iCount = 1 TO LENGTH(cPhone):
        cThisChar = SUBSTRING(cPhone, iCount, 1).
        /* 单字符字母判断,兼容所有OpenEdge版本 */
        IF (ASC(cThisChar) >= 65 AND ASC(cThisChar) <= 90) /* 大写A-Z */
        OR (ASC(cThisChar) >= 97 AND ASC(cThisChar) <= 122) /* 小写a-z */
        THEN cPersonName = cPersonName + cThisChar.
    END.

    // 后续将cPersonName赋值给对应备注字段即可
   
END PROCEDURE.
  • 如果使用的是较高版本的OpenEdge,可直接用内置ALPHA()函数简化判断逻辑,将判断行替换为IF ALPHA(cThisChar) THEN cPersonName = cPersonName + cThisChar.即可,效果完全一致。
  • 逻辑验证结果:
    • 输入(517)234-6789(Bob),提取结果为Bob
    • 输入701-556-2345(无联系人标注),提取结果为空字符串
    • 输入425-557-7745(Pauline),提取结果为Pauline

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:39:20