我正在编写一个函数来格式化字符串。我收到一串数字,有时有破折号,有时没有。我需要生成一个14个字符的输出字符串,所以如果输入字符串包含的字符少于14,我需要用零填充它。然后我需要通过在适当的位置插入破折号来屏蔽字符串。到目前为止,我得到的是:
strTemp = strTemp.Replace("-", "")
If IsNumeric(strTemp) Then
If strTemp.Length < 14 Then
strTemp = strTemp.PadRight(14 - strTemp.Length)
End If
output = String.Format(strTemp, "{00-000-0-0000-00-00}")
End If
上面的操作很好,只是它只返回一个数字字符串而不加短划线。我知道我在String.Format上做了一些错误,但到目前为止,我只使用了预定义的格式。有人能帮忙吗?在这种情况下,如何使用Regex进行字符串格式化?
这个函数应该能完成任务:
Public Function MaskFormat(input As String) As String
input = input.Replace("-", String.Empty)
If IsNumeric(input) Then
If input.Length < 14 Then
input = input.PadRight(14 - input.Length)
End If
Return String.Format("{0:00-000-0-0000-00-00}", CLng(input))
Else
Return String.Empty
End If
End Function
你可以在这里找到更多关于字符串格式的信息。