に引用符をオンにするVB.net機能には、私がはまって</p> <p>に私は</p> <p>をオンにしたい、私は「ピーナッツ」と「ココア」にはまってsmartquotes
を内蔵あり「ピーナッツ」と「ココア」
どうすればいいですか?そのために組み込まれた関数はありますか?
に引用符をオンにするVB.net機能には、私がはまって</p> <p>に私は</p> <p>をオンにしたい、私は「ピーナッツ」と「ココア」にはまってsmartquotes
を内蔵あり「ピーナッツ」と「ココア」
どうすればいいですか?そのために組み込まれた関数はありますか?
もちろん組み込み関数はありません。どのように地球上で第一の一重引用符を変えずに置き、第二の二重引用符を変えますか?あなたが望む結果を得るためには、後ろに論理がなければなりません。それは猫の尾のために書かれていないので、英語の言語構造を解釈するプログラムは、私が
Function trSmart(s As String) As String
Dim inSngl As Boolean = False
Dim inDbl As Boolean = False
For i = 1 To s.Length()
If s(i - 1) = "'"c Then
If inSngl Then
s = s.Substring(0, i - 1) & Chr(146) & s.Substring(i)
inSngl = False
Else
s = s.Substring(0, i - 1) & Chr(145) & s.Substring(i)
inSngl = True
End If
ElseIf s(i - 1) = """"c Then
If inDbl Then
s = s.Substring(0, i - 1) & Chr(147) & s.Substring(i)
inDbl = False
Else
s = s.Substring(0, i - 1) & Chr(148) & s.Substring(i)
inDbl = True
End If
End If
Next
Return s
End Function
、ニーズのためにそれを編集し、私は何かを書いた後、問題を指摘し讲义1コースの
を推測これは自動的に検出します空白が文字列の前後にあるかどうか、適切に動作するかどうか。
Public Function SmartQuotes(ByVal someString As String) As String
someString = " " + someString + " "
Dim oldstring = someString
someString = smarten(someString, "'"c, "‘"c, "’"c)
someString = smarten(someString, """"c, Chr(147), Chr(148))
If oldstring = someString Then
Return Trim(someString)
Else
Return SmartQuotes(someString)
End If
End Function
Public Function smarten(ByVal someString As String, ByVal original As Char, ByVal left As Char, ByVal right As Char) As String
If someString.Contains(original) Then
Dim index = someString.IndexOf(original)
If leftQuoteorRightquote(someString, index) Then
someString = someString.Remove(index, 1).Insert(index, left)
Else
someString = someString.Remove(index, 1).Insert(index, right)
End If
End If
Return someString
End Function
Public Function leftQuoteorRightquote(ByVal somestring As String, ByVal index As Integer) As Boolean
If somestring.Substring(index - 1, 1) = " " And somestring.Substring(index + 1, 1) <> " " Then
Return True
Else
Return False
End If
End Function
実際に問題があるのは、後で削除する方法がある場合です。 –