The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 C# 實做全形轉半形的方法

我們在做資料驗證的時候,經常有一種情況,就是使用者會用「全形」輸入 Email, 電話, 或其他英、數字的相關資料,可能是使用者不小心切換到輸入法的全形功能,導致無意識的輸入了電腦無法辨識的字元。例如說全形的 Email address 就無法被正確寄送出去。

在 .NET Framework 中有個 Microsoft.VisualBasic 命名空間,裡面有很多寶,但大多都是 VB.NET 的開發人員比較知道,寫 C# 的人很少用到這個命名空間。

其中就有個字串轉換的方法十分的好用且實用。以下是將 Microsoft.VisualBasic 命名空間套用在 ASP.NET 專案中的方法:

1. 在 Web 專案加入參考,選取 "Microsoft.VisualBasic" 組件,此動作會在 web.config 加入一個 assembly 宣告:

   <system.web>
    <compilation debug="true">
     <assemblies>
      <add assembly="Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
     </assemblies>
    </compilation>
   </system.web>

  2. 在 *.cs 中加入 using Microsoft.VisualBasic;
  
  3. 使用 Strings.StrSonv 方法
  
   MSDN的說明網址:http://msdn2.microsoft.com/zh-tw/library/microsoft.visualbasic.strings.strconv(VS.80).aspx

底下這行是一段簡單的範例程式,目的是將 strOriginalEmail 字串中的所有「全形」字元全部轉成「半形」(VbStrConv.Narrow):

[code:c#]

    string strEmail = Strings.StrConv(strOriginalEmail, VbStrConv.Narrow, 0).ToLower().Trim();

[/code]

相關連結: