如何编写掩码SSN前5位仅保留最后四位的VB.NET处理函数
VB.NET SSN掩码格式化函数改造方案
改动说明
- 新增输入预处理逻辑:自动过滤输入中的非数字字符,兼容带横杠等分隔符的输入场景
- 统一合法SSN判定规则:预处理后数字长度为9位即判定为合法SSN
- 合法SSN统一输出掩码格式:前5位替换为x,仅保留最后四位,输出结构为
xxx-xx-1234,不再输出完整明文 - 保留原有异常处理逻辑:空输入返回空串,非合法SSN格式直接返回原输入
完整实现代码
Public Shared Function ID(ByVal id As String) As String If String.IsNullOrEmpty(id) Then Return String.Empty End If ' 预处理:过滤所有非数字字符 Dim pureNumId As String = New String(id.Where(Function(c) Char.IsDigit(c)).ToArray()) ' 校验是否为9位合法SSN If pureNumId.Length = 9 Then ' 拼接掩码格式,仅保留最后四位 Return $"xxx-xx-{pureNumId.Substring(5, 4)}" End If ' 非合法格式返回原输入 Return id End Function
效果验证
- 输入空值 → 返回空串
- 输入纯数字
123456789→ 返回xxx-xx-6789 - 输入带分隔符的
123-45-6789→ 返回xxx-xx-6789 - 输入长度不足/超过9位的字符串 → 直接返回原输入
内容的提问来源于stack exchange,提问作者langroyia
相关产品推荐
相关产品推荐

