16,555
社区成员
发帖
与我相关
我的任务
分享
Dim tels As String() = New String() {"86-010-88888888", "010-88888888-888", "2588888888", "宅电88888888", "(010)88888888", "01388888888", "138 8888 8888", "135@8888!@8888"}
Dim temp As String = String.Empty
Dim regF As Regex = New Regex("[^0-9()()-]")
Dim regT As Regex = New Regex("^(?!0)[0-9]{2,3}-|-[0-9]{3,4}$|[()()-]")
Dim regM As Regex = New Regex("^0?1[35]")
For Each s As String In tels
temp = regF.Replace(s, "")
temp = regT.Replace(temp, "")
If regM.IsMatch(temp) Then
temp = temp.TrimStart("0"c)
ElseIf temp.Length > 8 And temp.Length < 13 And Not temp.StartsWith("0") Then
temp = "0" + temp
End If
RichTextBox2.Text += "源字符串: " & s.PadRight(25, " "c) & "格式化: " & temp & vbCrLf
Next
/*输出
源字符串: 86-010-88888888 格式化: 01088888888
源字符串: 010-88888888-888 格式化: 01088888888
源字符串: 2588888888 格式化: 02588888888
源字符串: 宅电88888888 格式化: 88888888
源字符串: (010)88888888 格式化: 01088888888
源字符串: 01388888888 格式化: 1388888888
源字符串: 138 8888 8888 格式化: 13888888888
源字符串: 135@8888!@8888 格式化: 13588888888
*/
Dim regT As Regex = New Regex("^(?!0)[0-9]{2,3}-|-[0-9]{3,4}$|[()()-]")
'替换为
Dim regT As Regex = New Regex("^(?!0)[0-9]{2,3}-|-[0-9]{3,4}$|-[((][0-9]{1,4}[))]$|[()()-]")