From 0f2e0147e8990e913d16d99bc1b94fb6bc53abd7 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期四, 03 十二月 2020 15:35:42 +0800 Subject: [PATCH] 2020-12-03-1 --- HDL_ON/Common/Utlis.cs | 269 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 263 insertions(+), 6 deletions(-) diff --git a/HDL_ON/Common/Utlis.cs b/HDL_ON/Common/Utlis.cs index 329f7f5..e5e76f9 100644 --- a/HDL_ON/Common/Utlis.cs +++ b/HDL_ON/Common/Utlis.cs @@ -1,19 +1,276 @@ 锘縰sing System; -namespace HDL_ON.Common +using Shared; +using System.Text.RegularExpressions; +using System.Text; + +namespace HDL_ON { /// <summary> /// 甯哥敤宸ュ叿绫� /// </summary> public class Utlis { - /// <summary> - /// 鍏ㄥ眬鎵撳嵃 - /// </summary> - public static void WriteLine(object mes) + /// <summary> + /// 鍏ㄥ眬鎵撳嵃 + /// </summary> + public static void WriteLine(object mes) { #if DEBUG Console.WriteLine(mes); #endif } - } + + /// <summary> + /// 寮圭獥鎻愮ず + /// </summary> + /// <param name="mes"></param> + public static void ShowAlertOnMainThread(string mes) + { + Application.RunOnMainThread(() => { + new Alert("", mes, Language.StringByID(StringId.Close)).Show(); + }); + } + + /// <summary> + /// ShowTip + /// </summary> + /// <param name="mes"></param> + /// <param name="closeTime">鍏抽棴鏃堕棿</param> + public static void ShowTip(String mes, int closeTime = 2) + { + var tip = new Tip() + { + Text = mes, + CloseTime = closeTime, + Direction = AMPopTipDirection.None + }; + tip.Show(MainPage.BaseView); + } + + + #region 鈻� 鍚勭姝e垯妫�娴媉______________________ + /// <summary> + /// 鐢ㄤ簬涓浗澶ч檰楠岃瘉鎵嬫満鍙锋鍒欒〃杈惧紡 + /// 浠�1寮�澶达紝11浣� + /// </summary> + public static string PhoneRegexStr = "^[1][0-9]{10}$"; + /// <summary> + /// 鐢ㄤ簬楠岃瘉闈炰腑鍥藉ぇ闄嗘墜鏈哄彿姝e垯琛ㄨ揪寮� + /// </summary> + public static string PhoneForForeignRegexStr = "^[0-9]*$"; + /// <summary> + /// 鐢ㄤ簬楠岃瘉閭姝e垯琛ㄨ揪寮� + /// </summary> + public static string EmailRegexStr = "^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$"; + + /// <summary> + /// 鍒ゆ柇鏄惁鍖呭惈澶у啓瀛楁瘝 + /// </summary> + /// <returns><c>true</c>, if contain upper was checked, <c>false</c> otherwise.</returns> + /// <param name="value">Value.</param> + public static bool CheckContainUpper(string value) + { + Regex reg = new Regex("[A-Z]+"); + return reg.IsMatch(value); + } + + /// <summary> + /// 鍒ゆ柇鏄惁鍖呭惈灏忓啓瀛楁瘝 + /// </summary> + /// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns> + /// <param name="value">Value.</param> + public static bool CheckContainLower(string value) + { + Regex reg = new Regex("[a-z]+"); + return reg.IsMatch(value); + } + + /// <summary> + /// 鍒ゆ柇鏄惁鍖呭惈鏁板瓧 + /// </summary> + /// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns> + /// <param name="value">Value.</param> + public static bool CheckContainNum(string value) + { + Regex reg = new Regex("[0-9]+"); + return reg.IsMatch(value); + } + + /// <summary> + /// 鍒ゆ柇鏄惁鍖呭惈绗﹀彿 + /// </summary> + /// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns> + /// <param name="value">Value.</param> + public static bool CheckContainSymbol(string value) + { + Regex reg = new Regex("([^a-z0-9A-Z])+"); + return reg.IsMatch(value); + } + + /// <summary> + /// 妫�娴嬮偖绠辨槸鍚﹀悎娉� + /// </summary> + /// <param name="email"></param> + /// <returns></returns> + public static bool CheckEmail(string email) + { + Regex reg = new Regex(EmailRegexStr); + return reg.IsMatch(email); + } + + /// <summary> + /// 妫�娴嬫墜鏈哄彿鏄惁鍚堟硶 + /// </summary> + /// <param name="phoneNumber">鎵嬫満鍙�</param> + /// <param name="areaCode">鍦板尯浠g爜</param> + /// <returns></returns> + public static bool CheckPhoneNumber(string phoneNumber, string areaCode) + { + //鏍¢獙澶栧浗鎵嬫満鍙� + if (areaCode != "86") + { + Regex reg = new Regex(PhoneForForeignRegexStr); + return reg.IsMatch(phoneNumber); + } + else + { + //鏍¢獙鍥藉唴鎵嬫満鍙� + Regex reg = new Regex(PhoneRegexStr); + return reg.IsMatch(phoneNumber); + } + } + + #endregion + + /// <summary> + /// TextButton + /// 鏍规嵁鏂囨湰,璁$畻鎸夐挳瀹冨疄闄呯殑瀹藉害 + /// </summary> + /// <param name="btn"></param> + /// <param name="extendWidth">琛ュ厖瀹藉害</param> + /// <returns></returns> + public static int GetRealWidthByTextButton(Button btn, int extendWidth = 1) + { + if (string.IsNullOrEmpty(btn.Text)) { return Application.GetRealWidth(extendWidth); } + + return btn.GetTextWidth() + Application.GetRealWidth(extendWidth); + } + + /// <summary> + /// 鏍规嵁鏂囨湰,璁$畻鎸夐挳瀹冨疄闄呯殑瀹藉害 + /// </summary> + /// <returns></returns> + public static int GetRealWidthByText(Button btn) + { + if (string.IsNullOrEmpty(btn.Text)) { return Application.GetRealWidth(4); } +#if __IOS__ + //闇�瑕佸鍔犱竴涓宸�� + return btn.GetTextWidth() + Application.GetRealWidth(8); +#else + //闇�瑕佸鍔犱竴涓宸�� + return btn.GetTextWidth() + Application.GetRealWidth(4); +#endif + } + + + /// <summary> + /// 鐢熸垚闅忔満瀛楃涓� + /// </summary> + /// <param name="length">瀛楃涓茬殑闀垮害</param> + /// <returns></returns> + public static string CreateRandomString(int length) + { + // 鍒涘缓涓�涓猄tringBuilder瀵硅薄瀛樺偍瀵嗙爜 + StringBuilder sb = new StringBuilder(); + //浣跨敤for寰幆鎶婂崟涓瓧绗﹀~鍏呰繘StringBuilder瀵硅薄閲岄潰鍙樻垚14浣嶅瘑鐮佸瓧绗︿覆 + for (int i = 0; i < length; i++) + { + Random random = new Random(Guid.NewGuid().GetHashCode()); + //闅忔満閫夋嫨閲岄潰鍏朵腑鐨勪竴绉嶅瓧绗︾敓鎴� + switch (random.Next(3)) + { + case 0: + //璋冪敤鐢熸垚鐢熸垚闅忔満鏁板瓧鐨勬柟娉� + sb.Append(createNum()); + break; + case 1: + //璋冪敤鐢熸垚鐢熸垚闅忔満灏忓啓瀛楁瘝鐨勬柟娉� + sb.Append(createSmallAbc()); + break; + case 2: + //璋冪敤鐢熸垚鐢熸垚闅忔満澶у啓瀛楁瘝鐨勬柟娉� + sb.Append(createBigAbc()); + break; + } + } + return sb.ToString(); + } + + /// <summary> + /// 鐢熸垚鍗曚釜闅忔満鏁板瓧 + /// </summary> + static int createNum() + { + Random random = new Random(Guid.NewGuid().GetHashCode()); + int num = random.Next(10); + return num; + } + + /// <summary> + /// 鐢熸垚鍗曚釜澶у啓闅忔満瀛楁瘝 + /// </summary> + static string createBigAbc() + { + //A-Z鐨� ASCII鍊间负65-90 + Random random = new Random(Guid.NewGuid().GetHashCode()); + int num = random.Next(65, 91); + string abc = Convert.ToChar(num).ToString(); + return abc; + } + + /// <summary> + /// 鐢熸垚鍗曚釜灏忓啓闅忔満瀛楁瘝 + /// </summary> + static string createSmallAbc() + { + //a-z鐨� ASCII鍊间负97-122 + Random random = new Random(Guid.NewGuid().GetHashCode()); + int num = random.Next(97, 123); + string abc = Convert.ToChar(num).ToString(); + return abc; + } + + /// <summary> + /// + /// </summary> + /// <param name="unixTimeStamp"></param> + /// <returns></returns> + public static DateTime UnixToDateTime(long unixTimeStamp) + { + DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯 + return startTime.AddSeconds(unixTimeStamp); + } + + /// <summary> + /// + /// </summary> + /// <param name="unixTimeStamp"></param> + /// <returns></returns> + public static long DateTimeToUnix(DateTime dateTime) + { + DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯 + return (long)(dateTime - startTime).TotalSeconds; // 鐩稿樊绉掓暟 + } + + + /// <summary> + /// 鑾峰彇璇锋眰鎻愪氦鐨勮瑷�鍙傛暟 + /// </summary> + public static string GetPostLanguageType() + { + return Language.CurrentLanguage == "Chinese" ? LanguageTypeEnum.CHINESE.ToString() : LanguageTypeEnum.ENGLISH.ToString(); + } + + } + } -- Gitblit v1.8.0