在字符串中间大写某些名称

时间:2015-11-19 10:11:26

标签: vb.net

正在使用的当前代码是在此代码下方查找O'Mac和Mc,如果它在字符串中找到它,则将其后面的第一个字母大写。 我们遇到过这样的问题,例如像Macey这样的名字也被资本化为MaCey。我正在寻找一些如何解决这个问题的帮助。我知道很可能会在Mc / Mac / O'之后检查字符串是否大于2个字符。

任何帮助都会非常感激,因为我不熟悉编码。

Pos = InStr(Trim(lName), " ")
        If Pos > 0 Then
            Return CapitaliseName(Trim(Left(lName, Pos))) & " " & CapitaliseName(Mid(lName, Pos + 1))
            Exit Function
        End If

        lName = LCase(Trim(lName))

        Pos = InStr(lName, "mac")
        If Pos > 0 Then Len = 3
        If Pos = 0 Then
            Pos = InStr(lName, "mc")
            Len = 2
        End If
        If Pos = 0 Then
            Pos = InStr(lName, "o'")
            Len = 2
        End If

        If Pos = 0 Then
            CapitaliseName = StrConv(lName, VbStrConv.ProperCase)
        Else
            CapitaliseName = StrConv(Left(lName, Pos - 1), VbStrConv.ProperCase) &
                            StrConv(Mid(lName, Pos, Len), VbStrConv.ProperCase) &
                            StrConv(Mid(lName, Pos + Len), VbStrConv.ProperCase)
        End If

0 个答案:

没有答案