C#.net String扩展 SafeSql/UrlEncode/HtmlEncode/FormatWith/正则/ToPinyin/FromJson/验证

 

 
  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Data;
using System.Data.Common;
using System.Web.Script.Serialization;
using System.Text.RegularExpressions;
using System.Web;
using Microsoft.VisualBasic;
using System.Collections;
using System.Xml.Linq;
using System.Xml;
using System.Xml.XPath;
using System.IO;
using System.Drawing;
using System.ComponentModel;

namespace Pub.Class {
public static class StringExtensions {

static public bool IsNullEmpty( this string str) {
return string .IsNullOrEmpty(str);
}
static public string IsNullEmpty( this string str, string defaultValue) {
return str.IsNullEmpty() ? defaultValue : str;
}

static public string SafeSql( this string str) {
str
= str.IsNullEmpty() ? "" : str.Replace( " ' " , " '' " );
str
= new Regex( " exec " , RegexOptions.IgnoreCase).Replace(str, " exec " );
str
= new Regex( " xp_cmdshell " , RegexOptions.IgnoreCase).Replace(str, " xp_cmdshell " );
str
= new Regex( " select " , RegexOptions.IgnoreCase).Replace(str, " select " );
str
= new Regex( " insert " , RegexOptions.IgnoreCase).Replace(str, " insert " );
str
= new Regex( " update " , RegexOptions.IgnoreCase).Replace(str, " update " );
str
= new Regex( " delete " , RegexOptions.IgnoreCase).Replace(str, " delete " );

str
= new Regex( " drop " , RegexOptions.IgnoreCase).Replace(str, " drop " );
str
= new Regex( " create " , RegexOptions.IgnoreCase).Replace(str, " create " );
str
= new Regex( " rename " , RegexOptions.IgnoreCase).Replace(str, " rename " );
str
= new Regex( " truncate " , RegexOptions.IgnoreCase).Replace(str, " truncate " );
str
= new Regex( " alter " , RegexOptions.IgnoreCase).Replace(str, " alter " );
str
= new Regex( " exists " , RegexOptions.IgnoreCase).Replace(str, " exists " );
str
= new Regex( " master. " , RegexOptions.IgnoreCase).Replace(str, " master. " );
str
= new Regex( " restore " , RegexOptions.IgnoreCase).Replace(str, " restore " );
return str;
}
static public string SafeSqlSimple( this string str) {
str
= str.IsNullEmpty() ? "" : str.Replace( " ' " , " '' " );
return str;
}

public static string UnHtml( this string htmlStr) {
if (htmlStr.IsNullEmpty()) return string .Empty;
return htmlStr.Replace( " \ "" , " \\\ "" ).ShowXmlHtml().Replace( " " , " &nbsp; " ).Replace( " \n " , " <br /> " );
}
public static string ShowXmlHtml( this string htmlStr) {
if (htmlStr.IsNullEmpty()) return string .Empty;
string str = htmlStr.Replace( " & " , " &amp; " ).Replace( " > " , " &gt; " ).Replace( " < " , " &lt; " );
return str;
}
public static string ShowHtml( this string htmlStr) {
if (htmlStr.IsNullEmpty()) return string .Empty;
string str = htmlStr;

str
= Regex.Replace(str, @" (script|frame|form|meta|behavior|style)([\s|:|>])+ " , " _$1.$2 " , RegexOptions.IgnoreCase);
str
= new Regex( " <script " , RegexOptions.IgnoreCase).Replace(str, " <_script " );
str
= new Regex( " <object " , RegexOptions.IgnoreCase).Replace(str, " <_object " );
str
= new Regex( " javascript: " , RegexOptions.IgnoreCase).Replace(str, " _javascript: " );
str
= new Regex( " vbscript: " , RegexOptions.IgnoreCase).Replace(str, " _vbscript: " );
str
= new Regex( " expression " , RegexOptions.IgnoreCase).Replace(str, " _expression " );
str
= new Regex( " @import " , RegexOptions.IgnoreCase).Replace(str, " _@import " );
str
= new Regex( " <iframe " , RegexOptions.IgnoreCase).Replace(str, " <_iframe " );
str
= new Regex( " <frameset " , RegexOptions.IgnoreCase).Replace(str, " <_frameset " );
str
= Regex.Replace(str, @" (\<|\s+)o([a-z]+\s?=) " , " $1_o$2 " , RegexOptions.IgnoreCase);
str
= new Regex( @" (on[a-zA-Z ]+)= " , RegexOptions.IgnoreCase).Replace(str, " _$1= " );
return str;
}

public static string UrlEncode( this string str) {
return HttpUtility.UrlEncode(str);
}
public static string UrlDecode( this string str) {
return HttpUtility.UrlDecode(str);
}
public static string HtmlEncode( this string str) {
return HttpUtility.HtmlEncode(str);
}
public static string HtmlDecode( this string str) {
return HttpUtility.HtmlDecode(str);
}

public static int CnLength( this string str) {
return Encoding.Default.GetBytes(str).Length;
}
public static string SubString( this string strInput, int len, string flg) {
string myResult = string .Empty;
if (len >= 0 ) {
byte [] bsSrcString = Encoding.Default.GetBytes(strInput);
if (bsSrcString.Length > len) {
int nRealLength = len;
int [] anResultFlag = new int [len];
byte [] bsResult = null ;

int nFlag = 0 ;
for ( int i = 0 ; i < len; i ++ ) {
if (bsSrcString[i] > 127 ) {
nFlag
++ ;
if (nFlag == 3 ) nFlag = 1 ;
}
else nFlag = 0 ;
anResultFlag[i]
= nFlag;
}
if ((bsSrcString[len - 1 ] > 127 ) && (anResultFlag[len - 1 ] == 1 ))
nRealLength
= len + 1 ;
bsResult
= new byte [nRealLength];
Array.Copy(bsSrcString, bsResult, nRealLength);
myResult
= Encoding.Default.GetString(bsResult);
myResult
= myResult + (len >= strInput.CnLength() ? "" : flg);
}
else myResult = strInput;
}
return myResult;
}

public static string GetFileExtends( this string filename) {
string ext = null ;
if (filename.IndexOf( ' . ' ) > 0 ) {
string [] fs = filename.Split( ' . ' );
ext
= fs[fs.Length - 1 ];
}
return ext;
}
public static string GetUrlFileName( this string url) {
if (url == null ) return "" ;
string [] strs1 = url.Split( new char []{ ' / ' });
return strs1[strs1.Length - 1 ].Split( new char []{ ' ? ' })[ 0 ];
}
public static IList < string > GetHref( this string HtmlCode) {
IList
< string > MatchVale = new List < string > ();
string Reg = @" (h|H)(r|R)(e|E)(f|F) *= *('|"")?((\w|\\|\/|\.|:|-|_)+)('|""| *|>)? " ;
foreach (Match m in Regex.Matches(HtmlCode, Reg)) {
MatchVale.Add((m.Value).ToLower().Replace(
" href= " , "" ).Trim().TrimEnd( ' \ '' ).TrimEnd( '" ').TrimStart('\'').TrimStart(' "' ));
}
return MatchVale;
}
public static IList < string > GetSrc( this string HtmlCode) {
IList
< string > MatchVale = new List < string > ();
string Reg = @" (s|S)(r|R)(c|C) *= *('|"")?((\w|\\|\/|\.|:|-|_)+)('|""| *|>)? " ;
foreach (Match m in Regex.Matches(HtmlCode, Reg)) {
MatchVale.Add((m.Value).ToLower().Replace(
" src= " , "" ).Trim().TrimEnd( ' \ '' ).TrimEnd( '" ').TrimStart('\'').TrimStart(' "' ));
}
return MatchVale;
}
public static string GetEmailHostName( this string strEmail) {
if (strEmail.IndexOf( " @ " ) < 0 ) return "" ;
return strEmail.Substring(strEmail.LastIndexOf( " @ " )).ToLower();
}

public static DateTime ToDateTime( this string DateTimeStr) {
return DateTime.Parse(DateTimeStr);
}
public static string ToDateTime( this string fDateTime, string formatStr) {
DateTime s
= Convert.ToDateTime(fDateTime);
return s.ToString(formatStr);
}
public static DateTime ToDateTime( this string DateTimeStr, DateTime defDate) {
DateTime.TryParse(DateTimeStr,
out defDate);
return defDate;
}
public static DateTime ? ToDateTime( this string DateTimeStr, DateTime ? defDate) {
DateTime dt
= DateTime.Now;
DateTime dt2
= dt;
DateTime.TryParse(DateTimeStr,
out dt);
if (dt == dt2) return defDate;
return dt;
}

public static byte [] ToBytes( this string value) {
return value.ToBytes( null );
}
public static byte [] ToBytes( this string value, Encoding encoding) {
encoding
= (encoding ?? Encoding.Default);
return encoding.GetBytes(value);
}

public static string RemoveHTML( this string HtmlCode) {
string MatchVale = HtmlCode;
MatchVale
= new Regex( " <br> " , RegexOptions.IgnoreCase).Replace(MatchVale, " \n " );
foreach (Match s in Regex.Matches(HtmlCode, " <[^{><}]*> " )) { MatchVale = MatchVale.Replace(s.Value, "" ); } // "(<[^{><}]*>)" // @"<[\s\S-! ]*?>" // "<.+?>" // <(.*)>.*<\/\1>|<(.*) \/> // <[^>]+> // <(.|\n)+?>
MatchVale = new Regex( " \n " , RegexOptions.IgnoreCase).Replace(MatchVale, " <br> " );
return MatchVale;
}
public static string RemoveAllHTML( this string content) {
string pattern = " <[^>]*> " ;
return Regex.Replace(content, pattern, string .Empty, RegexOptions.IgnoreCase);
}

public static string ToSChinese( this string str) {
return Strings.StrConv(str, VbStrConv.SimplifiedChinese, 0 ) ;
}
public static string ToTChinese( this string str) {
return Strings.StrConv(str, VbStrConv.TraditionalChinese, 0 );
}

public static double Evel( this string ExprStr) {
Expression expression
= new Expression( " return " + ExprStr + " ; " );
return expression.Compute( 0 );
}
public static string Reverse( this string value) {
if (value.IsNullEmpty()) return string .Empty;

var chars
= value.ToCharArray();
Array.Reverse(chars);
return new string (chars);
}

public static string UBB( this string chr) {
if (chr.IsNullEmpty()) return string .Empty;
chr
= chr.HtmlEncode();
chr
= Regex.Replace(chr, @" <script(?<x>[^\>]*)>(?<y>[^\>]*) \</script\> " , @" &lt;script$1&gt;$2&lt;/script&gt; " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[url=(?<x>[^\]]*)\](?<y>[^\]]*)\[/url\] " , @" <a href=$1 target=_blank>$2</a> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[url\](?<x>[^\]]*)\[/url\] " , @" <a href=$1 target=_blank>$1</a> " , RegexOptions.IgnoreCase);

chr
= Regex.Replace(chr, @" \[email=(?<x>[^\]]*)\](?<y>[^\]]*)\[/email\] " , @" <a href=$1>$2</a> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[email\](?<x>[^\]]*)\[/email\] " , @" <a href=$1>$1</a> " , RegexOptions.IgnoreCase);

chr
= Regex.Replace(chr, @" \[flash](?<x>[^\]]*)\[/flash] " , @" <OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=500 height=400><PARAM NAME=movie VALUE=""$1""><PARAM NAME=quality VALUE=high><embed src=""$1"" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=500 height=400>$1</embed></OBJECT> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \ " , @" <IMG SRC=""$1"" border=0> " , RegexOptions.IgnoreCase);

chr
= Regex.Replace(chr, @" \[color=(?<x>[^\]]*)\](?<y>[^\]]*)\[/color\] " , @" <font color=$1>$2</font> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[face=(?<x>[^\]]*)\](?<y>[^\]]*)\[/face\] " , @" <font face=$1>$2</font> " , RegexOptions.IgnoreCase);

chr
= Regex.Replace(chr, @" \[size=1\](?<x>[^\]]*)\[/size\] " , @" <font size=1>$1</font> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[size=2\](?<x>[^\]]*)\[/size\] " , @" <font size=2>$1</font> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[size=3\](?<x>[^\]]*)\[/size\] " , @" <font size=3>$1</font> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[size=4\](?<x>[^\]]*)\[/size\] " , @" <font size=4>$1</font> " , RegexOptions.IgnoreCase);

chr
= Regex.Replace(chr, @" \[align=(?<x>[^\]]*)\](?<y>[^\]]*)\[/align\] " , @" <align=$1>$2</align> " , RegexOptions.IgnoreCase);

chr
= Regex.Replace(chr, @" \[fly](?<x>[^\]]*)\[/fly] " , @" <marquee width=90% behavior=alternate scrollamount=3>$1</marquee> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[move](?<x>[^\]]*)\[/move] " , @" <marquee scrollamount=3>$1</marquee> " , RegexOptions.IgnoreCase);

chr
= Regex.Replace(chr, @" \[glow=(?<x>[^\]]*),(?<y>[^\]]*),(?<z>[^\]]*)\](?<w>[^\]]*)\[/glow\] " , @" <table width=$1 style='filter:glow(color=$2, strength=$3)'>$4</table> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[shadow=(?<x>[^\]]*),(?<y>[^\]]*),(?<z>[^\]]*)\](?<w>[^\]]*)\[/shadow\] " , @" <table width=$1 style='filter:shadow(color=$2, strength=$3)'>$4</table> " , RegexOptions.IgnoreCase);

chr
= Regex.Replace(chr, @" \[b\](?<x>[^\]]*)\[/b\] " , @" <b>$1</b> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[i\](?<x>[^\]]*)\[/i\] " , @" <i>$1</i> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[u\](?<x>[^\]]*)\[/u\] " , @" <u>$1</u> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[code\](?<x>[^\]]*)\[/code\] " , @" <pre id=code><font size=1 face='Verdana, Arial' id=code>$1</font id=code></pre id=code> " , RegexOptions.IgnoreCase);

chr
= Regex.Replace(chr, @" \[list\](?<x>[^\]]*)\[/list\] " , @" <ul>$1</ul> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[list=1\](?<x>[^\]]*)\[/list\] " , @" <ol type=1>$1</ol id=1> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[list=a\](?<x>[^\]]*)\[/list\] " , @" <ol type=a>$1</ol id=a> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[\*\](?<x>[^\]]*)\[/\*\] " , @" <li>$1</li> " , RegexOptions.IgnoreCase);
chr
= Regex.Replace(chr, @" \[quote](?<x>.*)\[/quote] " , @" <center>—— 以下是引用 ——<table border='1' width='80%' cellpadding='10' cellspacing='0' ><tr><td>$1</td></tr></table></center> " , RegexOptions.IgnoreCase);
return (chr);
}

public static string FormatWith( this string str, params object [] args) {
return string .Format(str, args);
}
public static string FormatWith( this string text, object arg0) {
return string .Format(text, arg0);
}
public static string FormatWith( this string text, object arg0, object arg1) {
return string .Format(text, arg0, arg1);
}
public static string FormatWith( this string text, object arg0, object arg1, object arg2) {
return string .Format(text, arg0, arg1, arg2);
}
public static string FormatWith( this string text, IFormatProvider provider, params object [] args) {
return string .Format(provider, text, args);
}

public static string ReplaceWith( this string value, string regexPattern, string replaceValue) {
return ReplaceWith(value, regexPattern, replaceValue, RegexOptions.None);
}
public static string ReplaceWith( this string value, string regexPattern, string replaceValue, RegexOptions options) {
return Regex.Replace(value, regexPattern, replaceValue, options);
}
public static string ReplaceWith( this string value, string regexPattern, MatchEvaluator evaluator) {
return ReplaceWith(value, regexPattern, RegexOptions.None, evaluator);
}
public static string ReplaceWith( this string value, string regexPattern, RegexOptions options, MatchEvaluator evaluator) {
return Regex.Replace(value, regexPattern, evaluator, options);
}
public static string ReplaceWith( this string value, string regexPattern, string ReplaceString, bool IsCaseInsensetive) {
return Regex.Replace(value, regexPattern, ReplaceString, IsCaseInsensetive ? RegexOptions.IgnoreCase : RegexOptions.None);
}
public static string Replace( this string RegValue, string regStart, string regEnd) {
string s = RegValue;
if (RegValue != "" && RegValue != null ) {
if (regStart != "" && regStart != null ) { s = s.Replace(regStart, "" ); }
if (regEnd != "" && regEnd != null ) { s = s.Replace(regEnd, "" ); }
}
return s;
}

public static MatchCollection GetMatches( this string value, string regexPattern) {
return GetMatches(value, regexPattern, RegexOptions.None);
}
public static MatchCollection GetMatches( this string value, string regexPattern, RegexOptions options) {
return Regex.Matches(value, regexPattern, options);
}
public static MatchCollection FindBetween( this string s, string startString, string endString) {
return s.FindBetween(startString, endString, true );
}
public static MatchCollection FindBetween( this string s, string startString, string endString, bool recursive) {
MatchCollection matches;

startString
= Regex.Escape(startString);
endString
= Regex.Escape(endString);

Regex regex
= new Regex( " (?<= " + startString + " ).*(?= " + endString + " ) " );

matches
= regex.Matches(s);

if ( ! recursive) return matches;

if (matches.Count > 0 ) {
if (matches[ 0 ].ToString().IndexOf(Regex.Unescape(startString)) > - 1 ) {
s
= matches[ 0 ].ToString() + Regex.Unescape(endString);
return s.FindBetween(Regex.Unescape(startString), Regex.Unescape(endString));
}
else {
return matches;
}
}
else {
return matches;
}
}

public static IEnumerable < string > GetMatchingValues( this string value, string regexPattern) {
return GetMatchingValues(value, regexPattern, RegexOptions.None);
}
public static IEnumerable < string > GetMatchingValues( this string value, string regexPattern, RegexOptions options) {
foreach (Match match in GetMatches(value, regexPattern, options)) {
if (match.Success) yield return match.Value;
}
}
public static IList < string > GetMatchingValues( this string value, string regexPattern, string rep1, string rep2) {
IList
< string > txtTextArr = new List < string > ();
string MatchVale = "" ;
foreach (Match m in Regex.Matches(value, regexPattern)) {
MatchVale
= m.Value.Trim().Replace(rep1, "" ).Replace(rep2, "" );
txtTextArr.Add(MatchVale);
}
return txtTextArr;
}

public static string [] Split( this string value, string regexPattern, RegexOptions options) {
return Regex.Split(value, regexPattern, options);
}
public static string [] Split( this string value, string regexPattern) {
return value.Split(regexPattern, RegexOptions.None);
}

public static XDocument ToXDocument( this string xml) {
return XDocument.Parse(xml);
}
public static XmlDocument ToXmlDOM( this string xml) {
var document
= new XmlDocument();
document.LoadXml(xml);
return document;
}
public static XPathNavigator ToXPath( this string xml) {
var document
= new XPathDocument( new StringReader(xml));
return document.CreateNavigator();
}

public static string ToPinyin( this string s) {
return PinYin.Instance().Search(s).ToLower();
}
public static string ToPinyinChar( this string s) {
string strVal = PinYin.Instance().SearchCap(s);
if (strVal.ToLower() == strVal.ToUpper()) return " * " ; else return strVal.ToLower();
}

public static string Left( this string @string, int length) {
if (length <= 0 || @string.Length == 0 ) return string .Empty;
if (@string.Length <= length) return @string;
return @string.Substring( 0 , length);
}
public static string Right( this string @string, int length) {
if (length <= 0 || @string.Length == 0 ) return string .Empty;
if (@string.Length <= length) return @string;
return @string.Substring(@string.Length - length, length);
}

public static T CreateType < T > ( this string typeName, params object [] args) {
Type type
= Type.GetType(typeName, true , true );
return (T)Activator.CreateInstance(type, args);
}
public static T ToEnum < T > ( this string value) {
return ToEnum < T > (value, false );
}
public static T ToEnum < T > ( this string value, bool ignorecase) {
if (value == null ) throw new ArgumentNullException( " Value " );
value
= value.Trim();
if (value.Length == 0 ) throw new ArgumentNullException( " Must specify valid information for parsing in the string. " , " value " );
Type t
= typeof (T);
if ( ! t.IsEnum) throw new ArgumentException( " Type provided must be an Enum. " , " T " );
return (T)Enum.Parse(t, value, ignorecase);
}

public static int CharacterCount( this string value, char character) {
int intReturnValue = 0 ;

for ( int intCharacter = 0 ; intCharacter <= (value.Length - 1 ); intCharacter ++ ) {
if (value.Substring(intCharacter, 1 ) == character.ToString()) intReturnValue += 1 ;
}

return intReturnValue;
}

public static string ForcePrefix( this string s, string prefix) {
string result = s;
if ( ! result.StartsWith(prefix)) result = prefix + result;
return result;
}
public static string ForceSuffix( this string s, string suffix) {
string result = s;
if ( ! result.EndsWith(suffix)) result += suffix;
return result;
}
public static string RemovePrefix( this string s, string prefix) {
return Regex.Replace(s, " ^ " + prefix, System.String.Empty, RegexOptions.IgnoreCase);
}
public static string RemoveSuffix( this string s, string suffix) {
return Regex.Replace(s, suffix + " $ " , System.String.Empty, RegexOptions.IgnoreCase);
}

public static string PadLeft( this string s, string pad) {
return s.PadLeft(pad, s.Length + pad.Length, false );
}
public static string PadLeft( this string s, string pad, int totalWidth, bool cutOff) {
if (s.Length >= totalWidth) return s;

int padCount = pad.Length;

string paddedString = s;

while (paddedString.Length < totalWidth) paddedString += pad;

if (cutOff) paddedString = paddedString.Substring( 0 , totalWidth);

return paddedString;
}
public static string PadRight( this string s, string pad) {
return PadRight(s, pad, s.Length + pad.Length, false );
}
public static string PadRight( this string s, string pad, int length, bool cutOff) {
if (s.Length >= length) return s;

string paddedString = string .Empty;

while (paddedString.Length < length - s.Length) paddedString += pad;

if (cutOff) paddedString = paddedString.Substring( 0 , length - s.Length);

paddedString
+= s;

return paddedString;
}
public static Color ToColor( this string s) {
s
= s.Replace( " # " , string .Empty);

byte a = System.Convert.ToByte( " ff " , 16 );

byte pos = 0 ;

if (s.Length == 8 ) {
a
= System.Convert.ToByte(s.Substring(pos, 2 ), 16 );
pos
= 2 ;
}

byte r = System.Convert.ToByte(s.Substring(pos, 2 ), 16 );

pos
+= 2 ;

byte g = System.Convert.ToByte(s.Substring(pos, 2 ), 16 );

pos
+= 2 ;

byte b = System.Convert.ToByte(s.Substring(pos, 2 ), 16 );

return Color.FromArgb(a, r, g, b);
}

public static bool ContainsArray( this string value, params string [] keywords) {
return keywords.All((s) => value.Contains(s));
}
public static Nullable < T > ToNullable < T > ( this string s) where T : struct {
T
? result = null ;
if ( ! s.Trim().IsNullEmpty()) {
TypeConverter converter
= TypeDescriptor.GetConverter( typeof (T ? ));
result
= (T ? )converter.ConvertFrom(s);
}
return result;
}

public static List < string > GetLines( this string text) {
return text.Split( new [] {Environment.NewLine}, StringSplitOptions.None).ToList();
}

public static bool IsMatch( this string str, string op) {
if (str.Equals(String.Empty) || str == null ) return false ;
Regex re
= new Regex(op, RegexOptions.IgnoreCase);
return re.IsMatch(str);
}
public static bool IsIP( this string input) {
return input.IsMatch( @" ^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$ " ); // @"^(([01]?[\d]{1,2})|(2[0-4][\d])|(25[0-5]))(\.(([01]?[\d]{1,2})|(2[0-4][\d])|(25[0-5]))){3}$";
}
public static bool IsIPSect( this string ip) {
return ip.IsMatch( @" ^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){2}((2[0-4]\d|25[0-5]|[01]?\d\d?|\*)\.)(2[0-4]\d|25[0-5]|[01]?\d\d?|\*)$ " );
}
public static bool IsNumber( this string strNumber)
{
string pet = @" ^([0-9])[0-9]*(\.\w*)?$ " ;
return strNumber.IsMatch(pet);
}
public static bool IsDouble( this string input) {
string pet = @" ^[0-9]*[1-9][0-9]*$ " ; // @"^\d{1,}$" // 整数校验常量 // @"^-?(0|\d+)(\.\d+)?$" // 数值校验常量
return input.IsMatch(pet);
}
public static bool IsInt( this string input) {
string pet = @" ^[0-9]*$ " ; // @"^([0-9])[0-9]*(\.\w*)?$";
return input.IsMatch(pet);
}
public static bool IsNumberArray( this string [] strNumber) {
if (strNumber == null ) return false ;
if (strNumber.Length < 1 ) return false ;
foreach ( string id in strNumber)
if ( ! id.IsNumber()) return false ;
return true ;
}
public static bool IsEmail( this string input) {
string pet = @" ^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ " ; // @"^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$";
return input.IsMatch(pet);
}
public static bool IsUrl( this string input) {
string pet = @" ^(http|https)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{1,10}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*$ " ; // @"^http: // ([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
return input.IsMatch(pet);
}
public static bool IsZip( this string input) {
return input.IsMatch( @" \d{6} " );
}
public static bool IsSSN( this string input) {
string pet = @" \d{18}|\d{15} " ;
return input.IsMatch(pet);
}
public static bool IsSafeSqlString( this string str) {
return ! Regex.IsMatch(str, @" [-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\'] " );
}
public static bool IsDateTime( this string input) {
// string pet = @"^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$";
string pet = @" ^(?=\d)(?:(?!(?:1582(?:\.|-|\/)10(?:\.|-|\/)(?:0?[5-9]|1[0-4]))|(?:1752(?:\.|-|\/)0?9(?:\.|-|\/)(?:0?[3-9]|1[0-3])))(?=(?:(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:\d\d)(?:[02468][048]|[13579][26]))\D0?2\D29)|(?:\d{4}\D(?!(?:0?[2469]|11)\D31)(?!0?2(?:\.|-|\/)(?:29|30))))(\d{4})([-\/.])(0?\d|1[012])\2((?!00)[012]?\d|3[01])(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]?\d|2[0-3])(?::[0-5]\d){1,2})?$ " ;
return input.IsMatch(pet);
}
public static bool IsDateTime2( this string DateTimeStr) {
try { DateTime _dt = DateTime.Parse(DateTimeStr); return true ; } catch { return false ; }
}
public static bool IsDate( this string DateStr) {
try { DateTime _dt = DateTime.Parse(DateStr); return true ; } catch { return false ; }
}
public static bool IsTime( this string TimeStr) {
return TimeStr.IsMatch( @" ^([0-1]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$ " ); // ^((([0-1]?[0-9])|(2[0-3])):([0-5]?[0-9])(:[0-5]?[0-9])?)$
}
public static bool IsAlphaNumeric( this string input) {
return input.IsMatch( @" [^a-zA-Z0-9] " );
}
public static bool IsTelepone( this string input) {
return input.IsMatch( @" ^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$ " ); // :"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
}
public static bool IsMobile( this string input) {
return input.IsMatch( @" ^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$ " );
}
public static bool IsInArray( this string stringarray, string str) {
return stringarray.Split( " , " ).IsInArray(str, false );
}
public static bool IsInArray( this string stringarray, string str, string strsplit) {
return stringarray.Split(strsplit).IsInArray(str, false );
}
public static bool IsInArray( this string stringarray, string str, string strsplit, bool caseInsensetive) {
return stringarray.Split(strsplit).IsInArray(str, caseInsensetive);
}
public static bool IsBase64String( this string str) {
return Regex.IsMatch(str, @" [A-Za-z0-9\+\/\=] " );
}
public static bool IsYear( this string input) {
return Regex.IsMatch(input, @" ^(19\d\d)|(200\d)$ " );
}
public static bool IsImgFileName( this string filename) {
filename
= filename.Trim();
if (filename.EndsWith( " . " ) || (filename.IndexOf( " . " ) == - 1 )) return false ;
string str = filename.Substring(filename.LastIndexOf( " . " ) + 1 ).ToLower();
if (((str != " jpg " ) && (str != " jpeg " )) && ((str != " png " ) && (str != " bmp " ))) return (str == " gif " );
return true ;
}
public static bool IsGuid( this string s) {
if (s.IsNullEmpty()) return false ;
Regex format
= new Regex( " ^[A-Fa-f0-9]{32}$| " +
" ^({|\\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\\))?$| " +
" ^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2},{0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$ " );
Match match
= format.Match(s);
return match.Success;
}

public static string GetMapPath( this string strPath) {
if (HttpContext.Current != null )
return HttpContext.Current.Server.MapPath(strPath);
else
return System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath);
}

public static Guid ToGuid( this string target) {
if (( ! target.IsNullEmpty()) && (target.Trim().Length == 22 )) {
string encoded = string .Concat(target.Trim().Replace( " - " , " + " ).Replace( " _ " , " / " ), " == " );
byte [] base64 = Convert.FromBase64String(encoded);
return new Guid(base64);
}
return Guid.Empty;
}

public static T FromJson < T > ( this string json) {
JavaScriptSerializer jsonSerializer
= new JavaScriptSerializer();
return jsonSerializer.Deserialize < T > (json);
}
}
}

转载于:https://www.cnblogs.com/livexy/archive/2010/08/07/1771292.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值