예제 #1
0
        /// <summary>指定された文字列が、英字(半角)のみで構成されているかどうか確認する。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:英字(半角)のみで構成されている。
        /// false:英字(半角)のみで構成されていない。
        /// </returns>
        /// <remarks>空文字列が指定された場合は、trueが返ります。</remarks>
        public static bool IsAlphabet_Hankaku(string input)
        {
            // 先頭から末尾まで、A-Z、a-zが0回以上連続マッチ

            // 文字コード表利用(文字クラス無し)
            return(StringChecker.Match(input, "^[A-Za-z]*$"));
        }
예제 #2
0
        /// <summary>
        /// 指定された文字列が郵便 番号
        /// (日本, ハイフン有り)形式であるか。
        /// </summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:郵便 番号(日本, ハイフン有り)形式である。
        /// false:郵便 番号(日本, ハイフン有り)形式でない。
        /// </returns>
        public static bool IsJpZipCode7_Hyphen(string input)
        {
            // 先頭xxx-xxxx末尾(xは10進数)

            // return StringChecker.Match(input, "^[0-9]{3}[-][0-9]{4}$");
            return(StringChecker.Match(input, @"^\d{3}[-]\d{4}$"));
        }
예제 #3
0
        /// <summary>指定された文字列が、数字(全角)のみで構成されているかどうか確認する。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:数字(全角)のみで構成されている。
        /// false:数字(全角)のみで構成されていない。
        /// </returns>
        /// <remarks>
        /// 数値チェックという意味ではParse、TryParse
        /// メソッドを使用すべきかどうかも検討下さい。
        /// 空文字列が指定された場合は、trueが返ります。
        /// </remarks>
        public static bool IsNumbers_Zenkaku(string input)
        {
            // 先頭から末尾まで、0-9が0回以上連続マッチ

            // 文字コード表利用(文字クラス無し)
            return(StringChecker.Match(input, "^[0-9]*$"));
        }
예제 #4
0
        /// <summary>
        /// 指定された文字列が郵便 番号
        /// (日本, ハイフン無し)形式であるか。
        /// </summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:郵便 番号(日本, ハイフン無し)形式である。
        /// false:郵便 番号(日本, ハイフン無し)形式でない。
        /// </returns>
        public static bool IsJpZipCode7_NoHyphen(string input)
        {
            // 先頭xxxxxxx末尾(xは10進数)

            // return StringChecker.Match(input, "^[0-9]{7}$");
            return(StringChecker.Match(input, "^\\d{7}$"));
        }
예제 #5
0
        /// <summary>指定された文字列が、全角文字のみで構成されているかどうか確認する。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:全角文字のみで構成されている。
        /// false:全角文字のみで構成されていない。
        /// </returns>
        /// <remarks>空文字列が指定された場合は、trueが返ります。</remarks>
        public static bool IsZenkaku(string input)
        {
            // 先頭から末尾まで、「[ ]-~、。-゚」(を除く)が0回以上連続マッチ

            // 文字コード表利用(文字クラス無し)
            return(StringChecker.Match(input, "^[^ -~。-゚]*$"));
        }
예제 #6
0
        /// <summary>指定された文字列が片仮名(半角)であるか。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:片仮名(半角)である。
        /// false:片仮名(半角)でない。
        /// </returns>
        /// <remarks>空文字列が指定された場合は、trueが返ります。</remarks>
        public static bool IsKatakana_Hankaku(string input)
        {
            // 先頭から末尾まで、ヲ-゚が0回以上連続マッチ

            // 文字コード表利用
            return(StringChecker.Match(input, "^[ヲ-゚]*$"));
        }
예제 #7
0
        /// <summary>指定された文字列が漢字であるか。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:漢字である。
        /// false:漢字でない。
        /// </returns>
        /// <remarks>空文字列が指定された場合は、trueが返ります。</remarks>
        public static bool IsKanji(string input)
        {
            // 先頭から末尾まで、漢字文字が0回以上連続マッチ

            // 漢字文字クラス利用
            return(StringChecker.Match(input, "^\\p{IsCJKUnifiedIdeographs}*$"));
        }
예제 #8
0
        /// <summary>
        /// 指定された文字列が、SJIS半角
        /// (にエンコーディング可能な)文字
        /// のみで構成されているかどうか確認する。
        /// </summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:SJIS半角文字のみで構成されている。
        /// false:SJIS半角文字のみで構成されていない。
        /// </returns>
        /// <remarks>
        /// SJISエンコーディングを使用して判定する。
        /// .NET TIPS > 文字列の全角/半角をチェックするには?
        /// http://www.atmarkit.co.jp/fdotnet/dotnettips/014strcheck/strcheck.html
        /// 空文字列が指定された場合は、trueが返ります。
        /// </remarks>
        public static bool IsShift_Jis_Hankaku(string input)
        {
            // SJIS文字チェック
            if (StringChecker.IsShift_Jis(input))
            {
                // SJIS文字である。

                // バイト数を取得
                Encoding sjisEnc = Encoding.GetEncoding(CustomEncode.shift_jis);
                int      byteLen = sjisEnc.GetByteCount(input);

                if (byteLen == input.Length)
                {
                    // バイト数 = 文字数の場合はSJIS半角
                    return(true);
                }
                else
                {
                    // バイト数 ≠ 文字数の場合はSJIS全角が混じる
                    return(false);
                }
            }
            else
            {
                // SJIS文字でない。
                return(false);
            }
        }
예제 #9
0
        /// <summary>指定された文字列が、数字(半角)のみで構成されているかどうか確認する。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:数字(半角)のみで構成されている。
        /// false:数字(半角)のみで構成されていない。
        /// </returns>
        /// <remarks>
        /// 数値チェックという意味ではParse、TryParse
        /// メソッドを使用すべきかどうかも検討下さい。
        /// 空文字列が指定された場合は、trueが返ります。
        /// </remarks>
        public static bool IsNumbers_Hankaku(string input)
        {
            // 先頭から末尾まで、0-9が0回以上連続マッチ

            // 文字コード表利用
            return(StringChecker.Match(input, "^[0-9]*$"));
        }
예제 #10
0
        /// <summary>指定された文字列が、英字(全角)のみで構成されているかどうか確認する。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:英字(全角)のみで構成されている。
        /// false:英字(全角)のみで構成されていない。
        /// </returns>
        /// <remarks>空文字列が指定された場合は、trueが返ります。</remarks>
        public static bool IsAlphabet_Zenkaku(string input)
        {
            // 先頭から末尾まで、A-Z、a-zが0回以上連続マッチ

            // 文字コード表利用(文字クラス無し)
            return(StringChecker.Match(input, "^[A-Za-z]*$"));
        }
예제 #11
0
        /// <summary>
        /// 指定された文字列が郵便 区 番号
        /// (日本, ハイフン有り)形式であるか。
        /// </summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:郵便 区 番号(日本, ハイフン有り)形式である。
        /// false:郵便 区 番号(日本, ハイフン有り)形式でない。
        /// </returns>
        public static bool IsJpZipCode5_Hyphen(string input)
        {
            // 先頭xxx末尾(xは10進数)
            // 先頭xxx-xx末尾(xは10進数)

            return(StringChecker.Match(input, @"^\d{3}$")
                   | StringChecker.Match(input, @"^\d{3}[-]\d{2}$"));
        }
예제 #12
0
        /// <summary>
        /// 指定された文字列が郵便 区 番号
        /// (日本, ハイフン無し)形式であるか。
        /// </summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:郵便 区 番号(日本, ハイフン無し)形式である。
        /// false:郵便 区 番号(日本, ハイフン無し)形式でない。
        /// </returns>
        public static bool IsJpZipCode5_NoHyphen(string input)
        {
            // 先頭xxx末尾(xは10進数)
            // 先頭xxxxx末尾(xは10進数)

            return(StringChecker.Match(input, "^\\d{3}$")
                   | StringChecker.Match(input, "^\\d{5}$"));
        }
예제 #13
0
        /// <summary>指定された文字列が、数字のみで構成されているかどうか確認する。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:数字のみで構成されている。
        /// false:数字のみで構成されていない。
        /// </returns>
        /// <remarks>
        /// 数値チェックという意味ではParse、TryParse
        /// メソッドを使用すべきかどうかも検討下さい。
        /// 空文字列が指定された場合は、trueが返ります。
        /// </remarks>
        public static bool IsNumbers(string input)
        {
            // 先頭から末尾まで、0-9, 0-9が0回以上連続マッチ

            //// 文字コード表利用
            //return StringChecker.Match(input, "^[0-90-9]*$");
            // 数値文字クラス利用
            return(StringChecker.Match(input, "^\\d*$"));
        }
예제 #14
0
        /// <summary>指定された文字列が片仮名(全角)であるか。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:片仮名(全角)である。
        /// false:片仮名(全角)でない。
        /// </returns>
        /// <remarks>空文字列が指定された場合は、trueが返ります。</remarks>
        public static bool IsKatakana_Zenkaku(string input)
        {
            // 先頭から末尾まで、ァ-ヾが0回以上連続マッチ

            //// 文字コード表利用
            //return StringChecker.Match(input, "^[ァ-ヾ]*$");
            // 日本語文字クラス利用
            return(StringChecker.Match(input, "^\\p{IsKatakana}*$"));
        }
예제 #15
0
        /// <summary>指定された文字列が平仮名であるか。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:平仮名である。
        /// false:平仮名でない。
        /// </returns>
        /// <remarks>空文字列が指定された場合は、trueが返ります。</remarks>
        public static bool IsHiragana(string input)
        {
            // 先頭から末尾まで、ぁ-ゞが0回以上連続マッチ

            //// 文字コード表利用
            //return StringChecker.Match(input, "^[ぁ-ゞ]*$");
            // 日本語文字クラス利用
            return(StringChecker.Match(input, "^\\p{IsHiragana}*$"));
        }
예제 #16
0
        /// <summary>指定された文字列が固定電話番号(日本, ハイフン有り)であるか。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:固定電話番号(日本, ハイフン有り)である。
        /// false:固定電話番号(日本, ハイフン有り)でない。
        /// </returns>
        /// <remarks>
        /// <総務省>
        /// 電話番号に関するQ&A
        /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a-2001aug.html
        /// 電気通信番号指定状況-固定電話の電話番号
        /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/fixed.html
        /// ※ FMC(Fixed Mobile Convergence)は含まず。
        /// </remarks>
        public static bool IsJpFixedLinePhoneNumber_Hyphen(string input)
        {
            // 先頭0x(1~4個)-x(1~4個)-x(4個)末尾(xは10進数)
            // そして、全体が10桁(ハイフン入れて12文字)であること。
            if (input.Length == 12)
            {
                return(StringChecker.Match(input, "^0\\d{1,4}-\\d{1,4}-\\d{4}$"));
            }

            return(false);
        }
예제 #17
0
        /// <summary>数字(double)に変換可能か確認する。</summary>
        /// <param name="input">入力文字列</param>
        /// <returns>
        /// true:数字に変換可能。
        /// false:数字に変換不可能。
        /// </returns>
        /// <remarks>
        /// double.TryParseでの実装。
        /// http://support.microsoft.com/kb/329488/ja
        /// 全角文字もチェック可能(半角変換後にチェック)。
        /// </remarks>
        public static bool IsNumeric(string input)
        {
            double temp;

            // 全角文字が混じる場合は半角化する。
            if (!StringChecker.IsHankaku(input))
            {
                input = StringConverter.ToHankaku(input);
            }

            return(double.TryParse(input, out temp));
        }
예제 #18
0
        /// <summary>MやDが1桁の場合に、YYYYMMDDに変換</summary>
        /// <param name="text">
        /// YYYYMMDDに変換する、
        /// ・YYYYMMD
        /// ・YYYYMDD
        /// ・YYYYMD
        /// などの文字列。
        /// </param>
        /// <returns>
        /// true:変換した場合。
        /// false:変換しなかった場合。
        /// </returns>
        public static bool EditYYYYMMDDString(ref string text)
        {
            // (1) 入力文字数が 7 桁の場合、
            //     5 文字目 ~ 6 文字目をチェックし、
            //     ・13 以上ならば、
            //       ・0 を 5 文字目の前に付加し月とする。
            //       ・6 文字目~ 7 文字目を日とする。
            //     ・13 未満ならば、
            //       ・5 文字目 ~ 6文字目を月とする。
            //       ・0 を 7 文字目の前に付加し日とする。
            // (2) 入力文字数が 6 桁の場合、
            //     ・0 を 5 文字目の前に付加し月とする。
            //     ・0 を 6 文字目の前に付加し日とする。

            if (StringChecker.IsNumbers_Hankaku(text))
            {
                if (text.Length == 7)
                {
                    // (1) 入力文字数が 7 桁の場合、
                    int temp = 0;

                    if (int.TryParse(text.Substring(4, 2), out temp))
                    {
                        if (temp >= 13)
                        {
                            text =
                                text.Substring(0, 4)
                                + "0" + text.Substring(4, 1)
                                + text.Substring(5, 2);

                            // 変更された。
                            return(true);
                        }
                        else
                        {
                            text =
                                text.Substring(0, 4)
                                + text.Substring(4, 2)
                                + "0" + text.Substring(6, 1);

                            // 変更された。
                            return(true);
                        }
                    }
                }
                else if (text.Length == 6)
                {
                    // (2) 入力文字数が 6 桁の場合
                    text =
                        text.Substring(0, 4)
                        + "0" + text.Substring(4, 1)
                        + "0" + text.Substring(5, 1);

                    // 変更された。
                    return(true);
                }
            }

            // 何もしない。
            return(false);
        }
예제 #19
0
 /// <summary>
 /// RegexクラスとMatchCollectionクラスを使用して、
 /// 正規表現のパターン マッチングを実行する。
 /// </summary>
 /// <param name="input">入力文字列</param>
 /// <param name="pattern">正規表現パターン</param>
 /// <returns>
 /// 一致のコレクション
 /// </returns>
 public static MatchCollection Matches(string input, string pattern)
 {
     return(StringChecker.Matches(input, pattern, RegexOptions.None));
 }
예제 #20
0
 /// <summary>
 /// RegexクラスとMatchクラスを使用して、
 /// 正規表現のパターン マッチングを実行する。
 /// </summary>
 /// <param name="input">入力文字列</param>
 /// <param name="pattern">正規表現パターン</param>
 /// <returns>
 /// true:一致した。
 /// false:一致しなかった。
 /// </returns>
 public static bool Match(string input, string pattern)
 {
     return(StringChecker.Match(input, pattern, RegexOptions.None));
 }
예제 #21
0
 /// <summary>指定された文字列が固定電話番号(日本, ハイフン無し)であるか。</summary>
 /// <param name="input">入力文字列</param>
 /// <returns>
 /// true:固定電話番号(日本, ハイフン無し)である。
 /// false:固定電話番号(日本, ハイフン無し)でない。
 /// </returns>
 /// <remarks>
 /// <総務省>
 /// 電話番号に関するQ&A
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a-2001aug.html
 /// 電気通信番号指定状況-固定電話の電話番号
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/fixed.html
 /// ※ FMC(Fixed Mobile Convergence)は含まず。
 /// </remarks>
 public static bool IsJpFixedLinePhoneNumber_NoHyphen(string input)
 {
     // 先頭0x(1~4個)x(1~4個)x(4個)末尾(xは10進数)
     // そして、全体が10桁(ハイフンが無いので10文字)であること。
     return(StringChecker.Match(input, "^0\\d{9}$"));
 }
예제 #22
0
 /// <summary>指定された文字列が携帯電話番号(日本, ハイフン有り)であるか。</summary>
 /// <param name="input">入力文字列</param>
 /// <returns>
 /// true:携帯電話番号(日本, ハイフン有り)である。
 /// false:携帯電話番号(日本, ハイフン有り)でない。
 /// </returns>
 /// <remarks>
 /// <総務省>
 /// 電話番号に関するQ&A
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a-2001aug.html
 /// 電気通信番号指定状況
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html
 /// 電気通信サービスFAQ(よくある質問)-6.電話番号について
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/d_faq/6Telephonenumber.htm
 /// ※ 020はポケベル、060はFMC、070はPHS、080・090は携帯、11桁。
 /// </remarks>
 public static bool IsJpCellularPhoneNumber_Hyphen(string input)
 {
     // 先頭0n0-x(4個)-x(4個)末尾(nは2 or 6 or 7 or 8 or 9、xは10進数)
     // そして、全体が11桁(ハイフン入れて13文字)であること。
     return(StringChecker.Match(input, "^0[26789]0-\\d{4}-\\d{4}$"));
 }
예제 #23
0
 /// <summary>指定された文字列が片仮名であるか。</summary>
 /// <param name="input">入力文字列</param>
 /// <returns>
 /// true:片仮名である。
 /// false:片仮名でない。
 /// </returns>
 /// <remarks>空文字列が指定された場合は、trueが返ります。</remarks>
 public static bool IsKatakana(string input)
 {
     return(StringChecker.IsKatakana_Hankaku(input) ||
            StringChecker.IsKatakana_Zenkaku(input));
 }
예제 #24
0
 /// <summary>指定された文字列が携帯電話番号(日本, ハイフン無し)であるか。</summary>
 /// <param name="input">入力文字列</param>
 /// <returns>
 /// true:携帯電話番号(日本, ハイフン無し)である。
 /// false:携帯電話番号(日本, ハイフン無し)でない。
 /// </returns>
 /// <remarks>
 /// <総務省>
 /// 電話番号に関するQ&A
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a-2001aug.html
 /// 電気通信番号指定状況
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html
 /// 電気通信サービスFAQ(よくある質問)-6.電話番号について
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/d_faq/6Telephonenumber.htm
 /// ※ 020はポケベル、060はFMC、070はPHS、080・090は携帯、11桁。
 /// </remarks>
 public static bool IsJpCellularPhoneNumber_NoHyphen(string input)
 {
     // 先頭0n0x(8個)末尾(nは2 or 6 or 7 or 8 or 9、xは10進数)
     // そして、全体が11桁(ハイフンが無いので11文字)であること。
     return(StringChecker.Match(input, "^0[26789]0\\d{8}$"));
 }
예제 #25
0
 /// <summary>指定された文字列がIP電話番号(日本, ハイフン有り)であるか。</summary>
 /// <param name="input">入力文字列</param>
 /// <returns>
 /// true:IP電話番号(日本, ハイフン有り)である。
 /// false:IP電話番号(日本, ハイフン有り)でない。
 /// </returns>
 /// <remarks>
 /// <総務省>
 /// 電話番号に関するQ&A
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a-2001aug.html
 /// 電気通信番号指定状況
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html
 /// 電気通信サービスFAQ(よくある質問)-6.電話番号について
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/d_faq/6Telephonenumber.htm
 /// ※ IP電話は050から始まる11桁。
 /// </remarks>
 public static bool IsJpIpPhoneNumber_Hyphen(string input)
 {
     // 先頭050-x(4個)-x(4個)末尾(xは10進数)
     // そして、全体が11桁(ハイフン入れて13文字)であること。
     return(StringChecker.Match(input, "^050-\\d{4}-\\d{4}$"));
 }
예제 #26
0
 /// <summary>指定された文字列がIP電話番号(日本, ハイフン無し)であるか。</summary>
 /// <param name="input">入力文字列</param>
 /// <returns>
 /// true:IP電話番号(日本, ハイフン無し)である。
 /// false:IP電話番号(日本, ハイフン無し)でない。
 /// </returns>
 /// <remarks>
 /// <総務省>
 /// 電話番号に関するQ&A
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a-2001aug.html
 /// 電気通信番号指定状況
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html
 /// 電気通信サービスFAQ(よくある質問)-6.電話番号について
 /// http://www.soumu.go.jp/main_sosiki/joho_tsusin/d_faq/6Telephonenumber.htm
 /// ※ IP電話は050から始まる11桁。
 /// </remarks>
 public static bool IsJpIpPhoneNumber_NoHyphen(string input)
 {
     // 先頭050x(8個)末尾(xは10進数)
     // そして、全体が11桁(ハイフンが無いので11文字)であること。
     return(StringChecker.Match(input, "^050\\d{8}$"));
 }