タグ : 数字

 

.NET 文字列が半角であるかをチェックする

C#、VB.NETで文字列が半角であることをチェックします。まずは一般的な文字列の「長さ」と「バイト数」が等しいことで判定する方法を説明します。
 
文字列が半角であるかをチェック(長さで判定)
 
        /// <summary>
        /// 文字列が半角かどうかを判定します
        /// </summary>
        /// <remarks>半角の判定を長さで行います</remarks>
        /// <param name="target">対象の文字列</param>
        /// <returns>文字列が半角の場合はtrue、それ以外はfalse</returns>
        public static bool IsHalfByLength(string target)
        {
            return target.Length == Encoding.GetEncoding("shift_jis").GetByteCount(target);
        }
 
 
文字列の長さとシフトJISでの文字列のバイト数が等しい場合は半角とみなします。これでほとんどの要件は満たすことができると思いますが、たとえば『半角カナは「ヲ」~半濁点までを有効とする』といった要件が加わった場合は正規表現を使います。
 
文字列が半角であるかをチェック(正規表現で判定、半角カタカナは「ヲ」~半濁点までを有効とする)
 
        /// <summary>
        /// 文字列が半角かどうかを判定します
        /// </summary>
        /// <remarks>半角の判定を正規表現で行います。半角カタカナは「ヲ」~半濁点を半角とみなします</remarks>
        /// <param name="target">対象の文字列</param>
        /// <returns>文字列が半角の場合はtrue、それ以外はfalse</returns>
        public static bool IsHalfByRegex(string target)
        {
            return new Regex("^[\u0020-\u007E\uFF66-\uFF9F]+$").IsMatch(target);
        }
 
 
以下のエリアでは「IsHalfByLength」と「IsHalfByRegex」メソッドを実際に動かした時の挙動を確認できます。
 
文字列が半角であるかをチェック(長さで判定)
 
IsHalfByLength(" 
 ");                   
実行結果:
 
文字列が半角であるかをチェック(正規表現で判定、半角カタカナは「ヲ」~半濁点までを有効とする)
 
IsHalfByRegex(" 
 ");                    
実行結果:
 

.NET 文字列が英数字記号であるかをチェックする

C#、VB.NETで文字列が半角英数字記号であることをチェックします。今回は正規表現を利用してチェックする方法をご紹介します。
 
●文字列が半角英数字記号であるかをチェック
        /// <summary>
        /// 文字列が半角英数字記号かどうかを判定します
        /// </summary>
        /// <param name="target">対象の文字列</param>
        /// <returns>文字列が半角英数字記号の場合はtrue、それ以外はfalse</returns>
        public static bool IsASCII(string target)
        {
            return new Regex("^[\x20-\x7E]+$").IsMatch(target);
        }
 
 
以下のエリアでは「IsASCII」メソッドを実際に動かした時の挙動を確認できます。
 
●文字列が半角英数字記号であるかをチェック
IsASCII(" 
 ");    
実行結果:
 

.NET 文字列が英数字であるかをチェックする

C#、VB.NETで文字列が英数字であることをチェックします。正規表現を利用して小文字の英数字、大文字の英数字、英数字(大文字・小文字を区別しない)をチェックする方法をご紹介します。
 
●文字列が小文字の英数字であるかをチェック
        /// <summary>
        /// 文字列が小文字の英数字かどうかを判定します
        /// </summary>
        /// <param name="target">対象の文字列</param>
        /// <returns>文字列が小文字の英数字の場合はtrue、それ以外はfalse</returns>
        public static bool IsLowercaseAlphanumeric(string target)
        {
            return new Regex("^[0-9a-z]+$").IsMatch(target);
        }
 
 
●文字列が大文字の英数字であるかをチェック
        /// <summary>
        /// 文字列が大文字の英数字かどうかを判定します
        /// </summary>
        /// <param name="target">対象の文字列</param>
        /// <returns>文字列が大文字の英数字の場合はtrue、それ以外はfalse</returns>
        public static bool IsUppercaseAlphanumeric(string target)
        {
            return new Regex("^[0-9A-Z]+$").IsMatch(target);
        }
 
 
●文字列が英数字であるかをチェック
        /// <summary>
        /// 文字列が英数字かどうかを判定します
        /// </summary>
        /// <remarks>大文字・小文字を区別しません</remarks>
        /// <param name="target">対象の文字列</param>
        /// <returns>文字列が英数字の場合はtrue、それ以外はfalse</returns>
        public static bool IsAlphanumeric(string target)
        {
            return new Regex("^[0-9a-zA-Z]+$").IsMatch(target);
        }
 
 
以下のエリアでは「IsLowercaseAlphanumeric」と「IsUppercaseAlphanumeric」、「IsAlphanumeric」メソッドを実際に動かした時の挙動を確認できます。
 
●文字列が小文字の英数字であるかをチェック
IsLowercaseAlphanumeric(" 
 ");    
実行結果:
 
●文字列が大文字の英数字であるかをチェック
IsUppercaseAlphanumeric(" 
 ");    
実行結果:
 
●文字列が英数字であるかをチェック
IsAlphanumeric(" 
 ");                  
実行結果:
g h T
 27,670 Total Views