using System;
using System.Linq;
using System.Text.RegularExpressions;
namespace Shared
{
public class CommonUtlis
{
#region ■ 变量声明___________________________
///
/// 通用方法
///
private static CommonUtlis m_Current = null;
///
/// 通用方法
///
public static CommonUtlis Current {
get {
if (m_Current == null) {
m_Current = new CommonUtlis ();
}
return m_Current;
}
}
#endregion
#region ■ 各种正确检测_______________________
///
/// 用于中国大陆验证手机号正则表达式
///
public static string PhoneRegexStr = "^[1][0-9]{10}$";
///
/// 用于验证非中国大陆手机号正则表达式
///
public static string PhoneForForeignRegexStr = "^[0-9]*$";
///
/// 用于验证邮箱正则表达式
///
public static string EmailRegexStr = "^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$";
///
/// 用于密码强度正则表达式
/// 密码必须为8-20个字符,包含字母、数字和符号
///
//public static string PasswordRegexStr = "^(?![0-9]+$)(?![a-zA-Z]+$)(?![0-9a-zA-Z]+$)(?![0-9\\W]+$)(?![a-zA-Z\\W]+$)[0-9A-Za-z\\W]{8,20}$";
public static string PasswordRegexStr = @"^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,20}$";//必须包含一个大写,一个小写字母,一个数字,一个特殊字符,且长度为8到20位
///
/// 判断是否包含大写字母
///
/// true, if contain upper was checked, false otherwise.
/// Value.
public bool CheckContainUpper (string value)
{
Regex reg = new Regex ("[A-Z]+");
return reg.IsMatch (value);
}
///
/// 判断是否包含小写字母
///
/// true, if contain lower was checked, false otherwise.
/// Value.
public bool CheckContainLower (string value)
{
Regex reg = new Regex ("[a-z]+");
return reg.IsMatch (value);
}
///
/// 判断是否包含数字
///
/// true, if contain lower was checked, false otherwise.
/// Value.
public bool CheckContainNum (string value)
{
Regex reg = new Regex ("[0-9]+");
return reg.IsMatch (value);
}
///
/// 判断是否包含符号
///
/// true, if contain lower was checked, false otherwise.
/// Value.
public bool CheckContainSymbol (string value)
{
Regex reg = new Regex ("([^a-z0-9A-Z])+");
return reg.IsMatch (value);
}
///
/// 检测邮箱是否合法
///
///
///
public bool CheckEmail (string email)
{
Regex reg = new Regex (EmailRegexStr);
return reg.IsMatch (email);
}
///
/// 检测手机号是否合法
///
/// 手机号
/// 地区代码
///
public bool CheckPhoneNumber (string phoneNumber, string areaCode)
{
//校验外国手机号
if (areaCode != "86") {
Regex reg = new Regex (PhoneForForeignRegexStr);
return reg.IsMatch (phoneNumber);
}
//校验国内手机号
if (phoneNumber.Length > 11) {
return false;
} else if (phoneNumber.Length == 11) {
Regex reg = new Regex (PhoneRegexStr);
return reg.IsMatch (phoneNumber);
} else {
//正则表达式判断是否数字
Regex reg = new Regex ("^[0-9]*$");
return reg.IsMatch (phoneNumber);
}
}
///
/// 检测密码是否合法
///
///
///
public bool CheckPassword (string password)
{
Regex reg = new Regex (PasswordRegexStr);
return reg.IsMatch (password);
}
#endregion
///
/// 检测iOS是否越狱和Android是否root
///
public void CheckIfJailBreak ()
{
#if __IOS__
var mes = "Your phone has been Jailbroken and you cannot use the APP.";
#else
var mes = "Your phone has been ROOT and you cannot use the APP.";
#endif
if (Shared.HDLUtils.ISJailBreak ()) {
Alert alert = new Alert ("", mes, Language.StringByID (SimpleControl.R.MyInternationalizationString.Confrim));
alert.ResultEventHandler += (sender2, e2) => {
Shared.HDLUtils.ExitApplication ();
};
alert.Show ();
}
}
///
/// 弹窗提示
///
/// 弹窗提示信息
/// 确认按钮事件
public void ShowActionAlert (string mes, Action okAction)
{
Alert alert = new Alert ("", mes, Language.StringByID (SimpleControl.R.MyInternationalizationString.Cancel), Language.StringByID (SimpleControl.R.MyInternationalizationString.Confrim));
alert.ResultEventHandler += (sender2, e2) => {
if (e2) {
okAction?.Invoke ();
}
};
alert.Show ();
}
}
}