您的位置:首页 > Web前端 > JavaScript

过滤javascript中警告信息的特殊字符

2008-11-16 14:57 477 查看
Code

''' <summary>

''' VB.NET 2005

''' 过滤特殊字符

''' author: joe-yang

''' create date: 2008-11-16

''' </summary>

''' <remarks></remarks>

Partial Class _Default

Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim alert As String

Dim input As String

'input = "qq \\\\\\\\\\ndnaaa\ra" 'Newline and Carriage return

'input = "qq''''\''\\\\\\\\\\\'dnaaaa" 'Single quote

'input = "d:\upload\files" 'hexadecimal

input = "d:\092221F73pload\files" 'hexadecimal

alert = replaceHex8(input)

alert = String.Format("alert('{0}')", alert)

Me.Page.ClientScript.RegisterStartupScript(Me.GetType(), "alert", alert, True)

End Sub

''' <summary>

''' Newline and Carriage return

''' </summary>

''' <returns></returns>

''' <remarks></remarks>

Private Function ReplaceText(ByVal input As String) As String

Dim pattern As String

pattern = "(?:\\)+(?=[rn])"

Return Regex.Replace(input, pattern, "\")

End Function

''' <summary>

''' Single quote

''' </summary>

''' <returns></returns>

''' <remarks></remarks>

Private Function ReplaceSingleQuote(ByVal input As String) As String

Dim result As String

Dim pattern As String

pattern = "(?:\\)*(?=['])"

result = Regex.Replace(input, pattern, "\")

Return result.Replace("\\", "\")

End Function

''' <summary>

''' A character represented by hexadecimal code nn

''' </summary>

''' <returns></returns>

''' <remarks></remarks>

Private Function ReplaceHexXCode(ByVal input As String) As String

Dim pattern As String

'不匹配 \xnn 16进制

'A character represented by hexadecimal code nn (where n is a hexadecimal digit 0-F)

pattern = "(\\)+x(?=$|[0-9a-fA-F]{0,1}[^0-9a-fA-F])"

Return Regex.Replace(input, pattern, "\\x")

End Function

''' <summary>

''' A Unicode character represented by hexadecimal code

''' </summary>

''' <returns></returns>

''' <remarks></remarks>

Private Function ReplaceHexUCode(ByVal input As String) As String

Dim pattern As String

'不匹配 \unnnn 16进制

'A Unicode character represented by hexadecimal code nnnn (where n is a hexadecimal digit 0-F)

pattern = "(\\)+u(?=$|[0-9a-fA-F]{0,3}[^0-9a-fA-F])"

Return Regex.Replace(input, pattern, "\\u")

End Function

Private Function replaceHex8(ByVal input As String) As String

Dim pattern As String

pattern = "(\\)+0(?=$|[0-7]{0,2}[^0-7])"

'不匹配8进制 \0nnn,则转义反斜杠

'A character represented by octal code nnn (where n is an octal digit 0-7)

'由于8进制,若不匹配,则后面的字符都会被截断,故需替换

Return Regex.Replace(input, pattern, "\\0")

End Function

End Class
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: