ASP.NET基本数值处理技巧|数值策划要学什么
本文介绍了基于ASP.NET Framework环境的基本数值和字符串安全处理技术,并对使用正则表达式进行数值处理的技巧进行了着重的介绍。 字符串可能是网络程序设计中最常用的数据类型,在ASP.NET中,用到字符串常数时都要加上双引号(“”),比如“003-1-1”表示了2003-1-1是一个字符串常数。
使用函数对字符串进行处理
实际上.NET有很多功能强大的字符串处理函数,比如Replace、Len、Mid、Trim、Split、Join、Ucase等等,巧妙利用这些函数,字符串的大部分问题都可以解决。
使用Replace函数显示HTML标记
使用Replace函数显示HTML标记,可以防止不法用户在Web表单中输入某些恶意的HTML标记,因为如果直接将这样的语句输出到页面上,恶意的HTML标记就会被浏览器解悉执行,就有可能引起非常危险的后果。为使浏览器不执行恶意的HTML标记代玛,使用Replace函数替换特殊字符是非常好的办法,实现方法如下:
Content=Replace(Content,””,” &l t”) 替换>
使用Replace函数防止SQL注入式的攻击
所谓的SQL注入式攻击,其实际就是某些人故意在Web表单输入SQL命令,这样往往会使应用程序判断错误,从而使之达到非法进入系统或破坏系统的目的,以笔者的经验,对付SQL注入式攻击比较简单的方法还是使用Replace函数替换危险字符。通常的做法是在程序设计时就是把认为有危险的字符如空格、*、?、双引号、单引号等全部替换掉。
使用Split函数裁分字符串
Split函数用来将一个字符按照指定的分隔符格式裁分成为一个数组,它的语法是这样:Split(原字符串,分隔符)。比如下面的例子:
Split(“abcd*efg*xyz”,”*”)
上面的语句得到一个一维数组,数组长度为2,其第0项内容是abcd,第1项内容是efg,第2项内容是xyz。
使用StringBuilder类对字符串的处理
String建立的字符串在内存中是不可以改变的,它的很多方法是另外创建了一个新的字符串实例,然后把旧的实例送到垃圾处理器处理了,实际上就是不断创建新的字符串不断去掉旧字符串的过程,这样如果要处理大量的字符串就会浪费很多的系统资源。而StringBuilder可以解决这个问题。StringBuilder在内存中开辟了一块空间,创建了一个可变的字符串,在其中可以添加、插入、删除和替换原来的内容。
正则表达式
正则表达式实际上是一种模式语言,它由两种基本字符类型组成:即普通文本字符和元字符(又称为特殊字符),利用这些字符,可以明确描述文本字符串的模式,并按照该模式进行查找或者替换字符串。
^[0-9]{3,4}-[0-9]{7.8}$
上面的例子中,^表示正则表达式匹配字符串的开始,其中的[0-9]{3,4}表示匹配3到4位数0.1.2.3.4.5.6.7.8.9的任意一个字符,连接起来就是3到4位数字,其中的-不变,表示-字符,其中的[0-9]{7,8}不是7到8位的一个数字,其中的$表示正则表达式匹配字符串的结束。这个例子实际上是一个电话号码的正则表达式的标准写法。一般来说,很多时候正则表达式需要使用位置限制符。表是经常使用的位置限制符。
ASP.NET提供了许多类来处理正则表达式,其中最常用的是Regex、Match、MatchCollection。Regex类表示一个不可以变化的正则表达式;Match类表示匹配到的单个结果;MatchCollection类表示匹配到的所有结果。
下面举一个例子,该实例用于判断用户输入的E-Mail地址写法是否正确,运行环境是在Windows 2000 Server操作系统的.NET框架内,编程语言使用ASP.NET内的VB。
1:
2:Sub Enter_Click(Sender As Object, E As EventArgs)
3:If Regex.IsMatch (txtContent.Text,"^.{1,}@.{1,}\.[a-zA-Z]{2,3}$", RegexOptions. IgNoreCase) =True Then
4:message.Text="E-mail合法"
5:Else
6:message.Text="邮件的输入格式错误"
7:End If
8:End Sub
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
在本示例中,第12到第16行定义了基本的用户输入表单,包括用户输入控件 TxtContent、按纽控件enter、标记控件Message,用户在客户端输入内容后单击按纽控件,服务端响应由第2到第8行语句处理,其中第3行包括了一个检查判断邮件输入内容是否合法的正则表达式和正则表达式的类Regex和该类的方法IsMatch,用于指出正则表达式是否在输入的字符串中找到匹配项,当用户输入不合法时会在用户浏览器上指出输入错误的信息。
正则表达式的每一个模式都比较简单,但实际上要自己写一个实用正则表达式是非常困难的。值得高兴的是,正则表达式可以重用,大家可以在网络上参考别人已经做好的。
