using System;
using System.Text.RegularExpressions;
namespace Sp.Common
{
public class ValidatorHelper
{
/// <summary>
/// 検証URL(IPv4アドレスと一致する可能性がありますが、IPv4アドレスの形式を検証しませんでした; IPv6は当面一致しません)
/// [Allow "://"の省略を許可する;ポート番号を追加できる;階層を許可できる;パラメータを渡すことができる;ドメイン名の少なくとも1つのドットはこのドットの前にコンテンツがなければならない]
/// </ summary>
/// < param name = "input"> 検証する文字列</ param>
/// <returns> 一致するか</
return > public static bool IsURL(string input)
{
////ドメイン名の各レベルは、文字、数字、マイナス記号(最初の文字をマイナス記号にすることはできません)で構成され、大文字と小文字は区別されません。単一のドメインの長さは63文字を超えず、完全なドメイン名の全長は256文字を超えません。DNSシステムでは、フルネームはドット「。」で終わります(「www.nit.edu.cn」など)。最後の1つがない点は、相対アドレスを示します。
/// / "http://"などの接頭辞なし、一致するパラメータが渡されない
// 文字列パターン= @ "^([0-9a-zA-Z] [0-9a-zA-Z-] {0 、62} \。)+([0-9a-zA-Z] [0-9a-zA-Z-] {0,62})\。?$ ";
// 文字列パターン= @" ^((((ファイル| gopher |ニュース| nntp | telnet | http | ftp | https | ftps | sftp):// )|(www \。))+(([a-zA-Z0-9 \ ._-] + \。 [a-zA-Z] {2,6})|([0-9] {1,3} \。[0-9] {1,3} \。[0-9] {1,3} \ 。[0-9] {1,3}))(/ [a-zA-Z0-9 \&%_ \ ./-〜-] *)?$ ";
文字列パターン= @" ^([a- zA-Z] +://)?([\ w- \。] +)(\。[a-zA-Z0-9] +)(:\ d {0,5})?/?([\ w- /] *)\。?([a-zA-Z] *)\ ??(([\ w-] * = [\ w%] *&?)*)$ " ;
returnIsMatch(input、pattern);
}
#regionマッチングメソッド
/// <summary>
/// 文字列が正規表現で記述されたルールに一致することを確認
/// </ summary>
/// <param name = "inputStr"> 検証する文字列</ param>
/// <param name = "patternStr"> 正規表現文字列</ param>
/// <returns> 一致するか</
return > public static bool IsMatch(string inputStr、string patternStr)
{
リターン IsMatch(inputstrに、patternStr、falseに、falseに)。
}
/// <summary>
/// 文字列が正規表現で記述されたルールに一致することを確認します
/// </ summary>
/// <param name = "inputStr"> 確認する文字列</ param>
/// ます。<param name = "patternStr"> 正規表現文字列</ param>の
/// <PARAM NAME = "ifIgnoreCase"> 大文字と小文字を区別しない一致するかどうか。</ param>の
/// <戻り値> マッチ</リターン>
public static bool IsMatch(string inputStr、string patternStr、bool ifIgnoreCase)
{
return IsMatch(inputStr、patternStr、ifIgnoreCase、false );
}
/// <summary>
/// 文字列が正規表現で記述されたルールに一致することを確認します
/// </ summary>
/// <param name = "inputStr"> 確認する文字列</ param>
/// <param name = "patternStr"> 正規表現文字列</ param>
/// <param name = "ifValidateWhiteSpace"> 空白文字列を検証するかどうか</ param>
/// <returns> 一致するかどうか</ returns>
public static bool IsMatch1(string inputStr、string patternStr、bool ifValidateWhiteSpace)
{
return IsMatch(inputStr、patternStr、偽、ifValidateWhiteSpace);
}
/// <summary>
/// 文字列が正規表現で記述されたルールに一致することを確認します
/// </ summary>
/// <param name = "inputStr"> 確認する文字列</ param>
/// <param name = "patternStr"> 正規表現文字列</ param>
/// <param name = "ifIgnoreCase"> は、一致時に大文字と小文字を区別しない</ param>
/// <param name = "ifValidateWhiteSpace"> 空白文字列を検証するかどうか</ param>
/// <returns> 一致するかどうか</
return > public static bool IsMatch(string inputStr、文字列 patternStr、boolifIgnoreCase、bool ifValidateWhiteSpace)
{
if(!ifValidateWhiteSpace && string .IsNullOrEmpty(inputStr))
return false ; // 検証する空白文字列が不要で、検証する入力文字列がこの時点で空白文字列である場合、
Regex正規表現と一致しません = null ;
if (ifIgnoreCase)
regex = new Regex(patternStr、RegexOptions.IgnoreCase); // 大文字と小文字を区別しない一致を指定
else
regex = new Regex(patternStr);
return regex.IsMatch(inputStr);
}
#endregion
}
}