服务端验证
服务端验证代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Common.Extensions
{
using System.Text.RegularExpressions;
/// <summary>
/// 系统数据验证类
/// </summary>
public abstract class DataValidator
{
/// <summary>
/// 检测字符串是否为数字
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为数字,则为 true;否则为 false。</returns>
public static bool IsNumber(string input)
{
if (string.IsNullOrEmpty(input))
{
return false;
}
else
{
return Regex.IsMatch(input, "^[0-9]+$");
}
}
/// <summary>
/// 检测字符串是否为数字和,分隔符
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为数字,则为 true;否则为 false。</returns>
public static bool IsNumbers(string input)
{
if (string.IsNullOrEmpty(input))
{
return false;
}
else
{
return Regex.IsMatch(input, "^[0-9,]+$");
}
}
/// <summary>
/// 判断字符串是否是有效的IP地址
/// </summary>
/// <param name="input">IP地址字符串</param>
/// <returns>有效IP地址返回true ;否则返回false</returns>
public static bool IsIP(string input)
{
if (!string.IsNullOrEmpty(input))
{
return Regex.IsMatch(input.Trim(), @"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$");
}
else
{
return false;
}
}
/// <summary>
/// 检测字符串是否为数字,可带正负号
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为数字,则为 true;否则为 false。</returns>
public static bool IsNumberSign(string input)
{
if (string.IsNullOrEmpty(input))
{
return false;
}
else
{
return Regex.IsMatch(input, "^[+-]?[0-9]+$");
}
}
/// <summary>
/// 检测字符串是否为浮点数
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为浮点数,则为 true;否则为 false。</returns>
public static bool IsDecimal(string input)
{
if (string.IsNullOrEmpty(input))
{
return false;
}
else
{
return Regex.IsMatch(input, @"^[0-9]+(\.[0-9]+)?$");
}
}
/// <summary>
/// 检测字符串是否为浮点数 可带正负号
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为浮点数,则为 true;否则为 false。</returns>
public static bool IsDecimalSign(string input)
{
if (string.IsNullOrEmpty(input))
{
return false;
}
else
{
return Regex.IsMatch(input, @"^[+-]?[0-9]+(\.[0-9]+)?$");
}
}
/// <summary>
/// 检测字符串是否为有效的URL地址
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为有效的URL地址,则为 true;否则为 false。</returns>
public static bool IsUrl(string input)
{
if (string.IsNullOrEmpty(input))
{
return false;
}
else
{
return Regex.IsMatch(input, @"^http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?$", RegexOptions.IgnoreCase);
}
}
/// <summary>
/// 检测字符串是否为有效的邮件地址
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为有效的邮件地址,则为 true;否则为 false。</returns>
public static bool IsEmail(string input)
{
if (string.IsNullOrEmpty(input))
{
return false;
}
else
{
return Regex.IsMatch(input, @"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
}
}
/// <summary>
/// 检测字符串是否为有效的邮政编码
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为有效的邮政编码,则为 true;否则为 false。</returns>
public static bool IsPostCode(string input)
{
if (!IsNumber(input) || input.Length != 6)
{
return false;
}
else
{
return true;
}
}
/// <summary>
/// 检测字符串是否为有效的区号
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为有效的区号,则为 true;否则为 false。</returns>
public static bool IsAreaCode(string input)
{
if (!IsNumber(input) || input.Length < 3 || input.Length > 5)
{
return false;
}
else
{
return true;
}
}
/// <summary>
/// 检测字符串是否为有效的ID
/// </summary>
/// <param name="input">需要检查的字符串</param>
/// <returns>如果字符串为有效的ID,则为 true;否则为 false。</returns>
public static bool IsValidId(string input)
{
bool valid;
if (string.IsNullOrEmpty(input))
{
valid = false;
}
else
{
input = input.Replace("|", string.Empty).Replace(",", string.Empty).Replace("-", string.Empty).Replace(" ", string.Empty).Trim();
if (string.IsNullOrEmpty(input))
{
valid = false;
}
else
{
if (IsNumber(input))
{
valid = true;
}
else
{
valid = false;
}
}
}
return valid;
}
/// <summary>
/// 验证是否符合用户名规则
/// </summary>
/// <param name="userName">用户名</param>
/// <returns>符合返回true,不符合返回false</returns>
public static bool IsValidUserName(string userName)
{
if (string.IsNullOrEmpty(userName))
{
return false;
}
if (userName.Length > 20)
{
return false;
}
if (userName.Trim().Length == 0)
{
return false;
}
if (userName.Trim(new char[] { '.' }).Length == 0)
{
return false;
}
string notContains = @"\/""[]:|<>+=;,?*@";
for (int i = 0; i < userName.Length; i++)
{
if (notContains.IndexOf(userName[i]) >= 0)
{
return false;
}
}
return true;
}
/// <summary>
/// 过滤掉字符串中会引起注入攻击的字符
/// </summary>
/// <param name="strchar">要过滤的字符串</param>
/// <returns>已过滤的字符串</returns>
public static string FilterBadChar(string strchar)
{
string tempstrChar;
string newstrChar = string.Empty;
if (string.IsNullOrEmpty(strchar))
{
newstrChar = string.Empty;
}
else
{
tempstrChar = strchar;
string[] strBadChar = { "+", "'", "%", "^", "&", "?", "(", ")", "<", ">", "[", "]", "{", "}", "/", "\"", ";", ":", "Chr(34)", "Chr(0)", "--" };
StringBuilder strBuilder = new StringBuilder(tempstrChar);
for (int i = 0; i < strBadChar.Length; i++)
{
newstrChar = strBuilder.Replace(strBadChar[i], string.Empty).ToString();
}
newstrChar = Regex.Replace(newstrChar, "@+", "@");
}
return newstrChar;
}
/// <summary>
/// 过滤sql语句中like的内容
/// </summary>
/// <param name="strchar">like的内容</param>
/// <returns>返回过滤后sql语句中like的内容</returns>
public static string FilterLikeSql(string strchar)
{
string tempstrChar;
string newstrChar = string.Empty;
if (string.IsNullOrEmpty(strchar))
{
newstrChar = string.Empty;
}
else
{
tempstrChar = strchar;
string[] strBadChar = { "'", "%" };
StringBuilder strBuilder = new StringBuilder(tempstrChar);
for (int i = 0; i < strBadChar.Length; i++)
{
newstrChar = strBuilder.Replace(strBadChar[i], "\\" + strBadChar[i]).ToString();
}
}
return newstrChar;
}
/// <summary>
/// 过滤字符串中换行空格
/// </summary>
/// <param name="strchar">字符串</param>
/// <returns>返回过滤后过滤字符内容</returns>
public static string FilterStringLineBr(string strchar)
{
string newstrChar = string.Empty;
if (string.IsNullOrEmpty(strchar))
{
newstrChar = string.Empty;
}
else
{
newstrChar = strchar.Replace("\r", "").Replace("\r\n", "").Replace("\n", "");
}
return newstrChar;
}
}
}

浙公网安备 33010602011771号