//The MIT License (MIT)
//http://arolibraries.codeplex.com/license
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace AroLibraries.ExtensionMethods.Strings
{
public static class StringExt
{
/// Converts the string representation of a Guid toits Guid
/// equivalent. A return value indicates whether the operation succeeded.
///
/// A string containing a Guid to convert.
/// /// When this method returns, contains the Guid value equivalent to /// the Guid contained in , if the conversion succeeded, or if theconversion failed. /// The conversion fails if the
/// parameter is a /// reference ( in /// Visual Basic), or is not of the correct format.
/// ///
/// /// if was converted /// successfully; otherwise, .
/// /// Thrown if is . ///
/// /// Original code at https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=94072&wa=wsignin1.0#tabs
public static bool Ext_IsValidGuid(this string s)
{
if (s == null)
throw new ArgumentNullException("s");
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;
}
}
}