英語だけ全角から半角変換したい

strName = “BC1カンパニー”
という文字列を、"BC1カンパニー"のように、英数字だけ半角にしたいです。

StrConv(strName, VbStrConv.Narrow, &H411)

を行うと、"BC1カンパニー"のように、カタカナも半角になってしまいます。。。

アドバイスお願いします。

1 Like

こんにちは

とりいそぎ2案ほど

正規表現置換

System.Text.RegularExpressions.Regex.Replace(strName,"[A-Za-z0-9]+",Function(m) StrConv(m.Value, VbStrConv.Narrow, &H411))

Unicode正規化

strName.Normalize(System.Text.NormalizationForm.FormKC)

こちらは他の文字に影響を与える可能性があるかも

1 Like

ありがとうございます!
1つ目にいただいた案で無事実装できました!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.