End Sub
Private Sub PermCancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PermCancel_Button.Click
- Me.UseHashText.Text = Me.HistoryHashList.Items(Me.HistoryHashList.SelectedIndices(0)).ToString
+ If Me.HistoryHashList.Items.Count > 0 Then
+ Me.UseHashText.Text = Me.HistoryHashList.Items(Me.HistoryHashList.SelectedIndices(0)).ToString
+ Else
+ Me.UseHashText.Text = ""
+ End If
ChangeMode(False)
End Sub
post.IsMe = post.Name.ToLower.Equals(_uid)
'HTMLに整形
- post.OriginalData = CreateHtmlAnchor(post.Data, post.ReplyToList)
+ post.OriginalData = CreateHtmlAnchor(HttpUtility.HtmlEncode(post.Data), post.ReplyToList)
post.Data = HttpUtility.HtmlDecode(post.Data)
'Source整形
If post.Source.StartsWith("<") Then
End Function
Private Function CreateHtmlAnchor(ByVal Text As String, ByVal AtList As List(Of String)) As String
- Dim retStr As String = HttpUtility.HtmlEncode(Text) '要検証(デコードされて取得されるので再エンコード)
- '半角スペースを置換(Thanks @anis774)
- retStr = retStr.Replace(" ", " ") 'HttpUtility.HtmlEncode()ではスペースが処理されない為
+ 'Dim retStr As String = HttpUtility.HtmlEncode(Text) '要検証(デコードされて取得されるので再エンコード)
+ Dim retStr As String = HttpUtility.HtmlDecode(Text)
'uriの正規表現
Dim rgUrl As Regex = New Regex("(?<![0-9A-Za-z])(?:https?|shttp|ftps?)://(?:(?:[-_.!~*'()a-zA-Z0-9;:&=+$,]|%[0-9A-Fa-f" + _
"*)?(?:\?(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f])" + _
"*)?(?:#(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f])*)?")
'絶対パス表現のUriをリンクに置換
- retStr = rgUrl.Replace(Text, "<a href=""$&"">$&</a>")
+ 'retStr = rgUrl.Replace(retStr, "<a href=""$&"">$&</a>")
+ For Each mt As Match In rgUrl.Matches(retStr)
+ Text.Replace(mt.Result("$&"), "<a href=""" + mt.Result("$&") + """>" + mt.Result("$&") + "</a>")
+ Next
+ retStr = Text
+
+ '半角スペースを置換(Thanks @anis774)
+ retStr = retStr.Replace(" ", " ") 'HttpUtility.HtmlEncode()ではスペースが処理されない為
+
'@返信を抽出し、@先リスト作成
'Dim rg As New Regex("(^|[ -/:-@[-^`{-~])@([a-zA-Z0-9_]{1,20}/[a-zA-Z0-9_\-]{1,24}[a-zA-Z0-9_])")
Dim rg As New Regex("(^|[^a-zA-Z0-9_])[@@]([a-zA-Z0-9_]{1,20}/[a-zA-Z0-9_\-]{1,24}[a-zA-Z0-9_])")