市长热线演示版

StringHelper.cs 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Text.RegularExpressions;
  6. using System.Web;
  7. namespace HySoft.Common
  8. {
  9. public static class StringHelper
  10. {
  11. /// <summary>
  12. /// 截取字符串,超出部分用…
  13. /// </summary>
  14. /// <param name="sString"></param>
  15. /// <param name="nLeng"></param>
  16. /// <returns></returns>
  17. public static string SubStr(string sString, int nLeng)
  18. {
  19. if (sString.Length <= nLeng)
  20. {
  21. return sString;
  22. }
  23. else
  24. {
  25. return sString.Substring(0, nLeng) + "…";
  26. }
  27. }
  28. /// <summary>
  29. /// 截取字符串
  30. /// </summary>
  31. /// <param name="sString"></param>
  32. /// <param name="nLeng"></param>
  33. /// <param name="a">区别第一种方法,随便一个数字都可以</param>
  34. /// <returns></returns>
  35. public static string SubStr(string sString, int nLeng,int a)
  36. {
  37. if (sString.Length <= nLeng)
  38. {
  39. return sString;
  40. }
  41. else
  42. {
  43. return sString.Substring(0, nLeng);
  44. }
  45. }
  46. /// <summary>
  47. /// 截取字符串
  48. /// </summary>
  49. /// <param name="sString"></param>
  50. /// <param name="nLeng"></param>
  51. /// <param name="replaceStr">用什么字符串替换删掉的部分</param>
  52. /// <returns></returns>
  53. public static string SubStr(string sString, int nLeng, string replaceStr)
  54. {
  55. if (sString.Length <= nLeng)
  56. {
  57. return sString;
  58. }
  59. else
  60. {
  61. return sString.Substring(0, nLeng) + replaceStr;
  62. }
  63. }
  64. /// <summary>
  65. /// 清除脚本
  66. /// </summary>
  67. /// <param name="Htmlstring"></param>
  68. /// <returns></returns>
  69. public static string NoHTML(string Htmlstring)
  70. {
  71. //删除脚本
  72. Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
  73. //删除HTML
  74. Htmlstring = Regex.Replace(Htmlstring, @"<.*?>|&.{4,5}", "", RegexOptions.IgnoreCase);
  75. Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
  76. Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
  77. Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
  78. Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
  79. Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
  80. Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
  81. Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
  82. Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
  83. Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
  84. Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
  85. Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
  86. Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
  87. Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);
  88. Htmlstring.Replace("<", "");
  89. Htmlstring.Replace(">", "");
  90. Htmlstring.Replace("\r\n", "");
  91. Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
  92. return Htmlstring;
  93. }
  94. /// <summary>
  95. /// 构造空格
  96. /// </summary>
  97. /// <param name="i"></param>
  98. /// <returns></returns>
  99. public static string getspace(int i)
  100. {
  101. return getstr(i, " ");
  102. }
  103. /// <summary>
  104. /// 构造字符窜
  105. /// </summary>
  106. /// <param name="i"></param>
  107. /// <returns></returns>
  108. public static string getstr(int i, string str)
  109. {
  110. string str1 = "";
  111. for (int j = 0; j < i; j++)
  112. {
  113. str1 += str;
  114. }
  115. return str;
  116. }
  117. /// <summary>
  118. /// 清除html标记后截取
  119. /// </summary>
  120. /// <param name="sString"></param>
  121. /// <param name="nLeng"></param>
  122. /// <returns></returns>
  123. public static string noHtmlSubStr(string sString, int nLeng)
  124. {
  125. string str = NoHTML(sString);
  126. if (str.Length <= nLeng)
  127. {
  128. return str;
  129. }
  130. else
  131. {
  132. return str.Substring(0, nLeng) + "…";
  133. }
  134. }
  135. /// <summary>
  136. /// 输出图片
  137. /// </summary>
  138. /// <param name="width">最大宽度</param>
  139. /// <param name="url">路径</param>
  140. /// <returns></returns>
  141. public static string responImg(int width, string url)
  142. {
  143. return "<img onload=\"javascript:if(this.width>" + width + ")this.width=" + width + "\" src=\"" + url + "\" />";
  144. }
  145. /// <summary>
  146. /// 输出swf
  147. /// </summary>
  148. /// <param name="width"></param>
  149. /// <param name="height"></param>
  150. /// <param name="path"></param>
  151. /// <returns></returns>
  152. public static string responswf(int width, int height, string path)
  153. {
  154. StringBuilder sb = new StringBuilder();
  155. sb.Append("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" width=\"" + width + "\" height=\"" + height + "\">");
  156. sb.Append("<param name=\"movie\" value=\"" + path + "\" />");
  157. sb.Append("<param name=\"quality\" value=\"high\" />");
  158. sb.Append("<param name=\"wmode\" value=\"opaque\" />");
  159. sb.Append("<embed src=\"" + path + "\" quality=\"high\" wmode=\"opaque\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"" + width + "\" height=\"" + height + "\"></embed></object>");
  160. return sb.ToString();
  161. }
  162. /// <summary>
  163. /// 替换字符串中的单引号
  164. /// </summary>
  165. /// <param name="str"></param>
  166. /// <returns></returns>
  167. public static string ReplaceSingleQuote(this string str)
  168. {
  169. if (string.IsNullOrEmpty(str))
  170. return string.Empty;
  171. return str.Replace("'","''");
  172. }
  173. /// <summary>
  174. /// 合并数字字符串
  175. /// </summary>
  176. /// <param name="list">数字列表</param>
  177. /// <param name="charu">用什么字符间隔</param>
  178. /// <returns></returns>
  179. public static string hebingStr(this List<int> list, string charu)
  180. {
  181. StringBuilder sb = new StringBuilder();
  182. foreach (int str in list)
  183. {
  184. sb.Append(str + charu);
  185. }
  186. if (sb.Length == 0)
  187. {
  188. return string.Empty;
  189. }
  190. sb.Length = sb.Length - 1;
  191. return sb.ToString();
  192. }
  193. /// <summary>
  194. /// 清楚小数点后的0
  195. /// </summary>
  196. /// <param name="str"></param>
  197. /// <returns></returns>
  198. public static string ClearDecimal(this string str)
  199. {
  200. if (string.IsNullOrEmpty(str))
  201. return "0";
  202. str = float.Parse(str).ToString("0.00");
  203. if (Int32.Parse(str.Substring(str.IndexOf(".") + 1)) == 0)
  204. {
  205. return str.Substring(0, str.IndexOf("."));
  206. }
  207. return str;
  208. }
  209. /// <summary>
  210. /// 清楚小数点后的0
  211. /// </summary>
  212. /// <param name="str"></param>
  213. /// <returns></returns>
  214. public static string ClearDecimalZero(string str)
  215. {
  216. if (string.IsNullOrEmpty(str))
  217. return "0";
  218. if (str.IndexOf(".") > 0)
  219. {
  220. if (Int32.Parse(str.Substring(str.IndexOf(".") + 1)) == 0)
  221. {
  222. return str.Substring(0, str.IndexOf("."));
  223. }
  224. for (int i = str.Length - 1; i >= 0; i--)
  225. {
  226. if (str[i] != '0')
  227. {
  228. break;
  229. }
  230. else
  231. {
  232. str = str.Remove(i);
  233. }
  234. }
  235. return str;
  236. }
  237. else
  238. {
  239. return str;
  240. }
  241. }
  242. /// <summary>
  243. /// 汉字转拼音缩写(调用这个)
  244. /// /// Code By MuseStudio@hotmail.com
  245. /// /// 2004-11-30/// </summary>/// <param name="str">要转换的汉字字符串</param>
  246. /// /// <returns>拼音缩写</returns>
  247. public static string GetPYString(string str)
  248. {
  249. string tempStr = "";
  250. foreach (char c in str)
  251. {
  252. if ((int)c >= 33 && (int)c <= 126)
  253. {//字母和符号原样保留
  254. tempStr += c.ToString();
  255. }
  256. else
  257. {//累加拼音声母
  258. tempStr += GetPYChar(c.ToString());
  259. }
  260. }
  261. return tempStr;
  262. }
  263. /// <summary>
  264. /// /// 取单个字符的拼音声母/// Code By MuseStudio@hotmail.com
  265. /// /// 2004-11-30/// </summary>/// <param name="c">要转换的单个汉字</param>
  266. /// /// <returns>拼音声母</returns>
  267. public static string GetPYChar(string c)
  268. {
  269. byte[] array = new byte[2];
  270. array = System.Text.Encoding.Default.GetBytes(c);
  271. int i = (short)(array[0] - '\0') * 256 + ((short)(array[1] - '\0'));
  272. if (i < 0xB0A1) return "*";
  273. if (i < 0xB0C5) return "a";
  274. if (i < 0xB2C1) return "b";
  275. if (i < 0xB4EE) return "c";
  276. if (i < 0xB6EA) return "d";
  277. if (i < 0xB7A2) return "e";
  278. if (i < 0xB8C1) return "f";
  279. if (i < 0xB9FE) return "g";
  280. if (i < 0xBBF7) return "h";
  281. if (i < 0xBFA6) return "j";
  282. if (i < 0xC0AC) return "k";
  283. if (i < 0xC2E8) return "l";
  284. if (i < 0xC4C3) return "m";
  285. if (i < 0xC5B6) return "n";
  286. if (i < 0xC5BE) return "o";
  287. if (i < 0xC6DA) return "p";
  288. if (i < 0xC8BB) return "q";
  289. if (i < 0xC8F6) return "r";
  290. if (i < 0xCBFA) return "s";
  291. if (i < 0xCDDA) return "t";
  292. if (i < 0xCEF4) return "w";
  293. if (i < 0xD1B9) return "x";
  294. if (i < 0xD4D1) return "y";
  295. if (i < 0xD7FA) return "z";
  296. return "*";
  297. }
  298. public static int ToInt32(this string str)
  299. {
  300. return Convert.ToInt32(str);
  301. }
  302. public static decimal Todecimal(this string str)
  303. {
  304. return Convert.ToDecimal(str);
  305. }
  306. /// <summary>
  307. /// html编码
  308. /// </summary>
  309. /// <param name="str"></param>
  310. /// <returns></returns>
  311. public static string HtmlEncode(this string str)
  312. {
  313. return HttpUtility.HtmlEncode(str);
  314. }
  315. /// <summary>
  316. /// Hmtl解码
  317. /// </summary>
  318. /// <param name="str"></param>
  319. /// <returns></returns>
  320. public static string HtmlDecode(this string str)
  321. {
  322. return HttpUtility.HtmlDecode(str);
  323. }
  324. /// <summary>
  325. /// url编码
  326. /// </summary>
  327. /// <param name="str"></param>
  328. /// <returns></returns>
  329. public static string UrlEncode(this string str)
  330. {
  331. return HttpUtility.UrlEncode(str);
  332. }
  333. /// <summary>
  334. /// url解码
  335. /// </summary>
  336. /// <param name="str"></param>
  337. /// <returns></returns>
  338. public static string UrlDecode(this string str)
  339. {
  340. return HttpUtility.UrlDecode(str);
  341. }
  342. public static string GetGuid()
  343. {
  344. return Guid.NewGuid().ToString().Replace("-","");
  345. }
  346. /// <summary>
  347. /// 清楚字符串中所有空格,包括\r\n\t
  348. /// </summary>
  349. /// <param name="str"></param>
  350. /// <returns></returns>
  351. public static string CleanSpace(this string str)
  352. {
  353. return Regex.Replace(str, @"\s", "");
  354. }
  355. }
  356. }