Saya menggunakan RegEx [^A-Za-z0-9-_ &] untuk menghapus semuanya kecuali A-Z, a-z, 0-9,-,_,spasi dan &.

Ini benar-benar berfungsi selain dari ampersand. Itu tidak akan mengizinkan ampersand di antara karakter lain dan akan memungkinkan beberapa ampersand melalui jika saya mengetik beberapa dari mereka berturut-turut.

Ini berfungsi dengan baik ketika saya memeriksanya di https://regexr.com/ jadi ini adalah sesuatu yang spesifik di VB.

  • Saya telah mencoba mengubah di mana di RegEx ampersand berada.

  • Saya telah mencoba menghindarinya dengan garis miring terbalik.

  • Saya telah mencoba menggunakan Regex.Escape.

  • Saya telah mencoba menggunakan kode karakter hex alih-alih ampersand.

Di bawah ini adalah kode pengujian saya menggunakan kontrol label untuk menunjukkan apa yang dilakukan regex:

Private Sub TextBoxSearch_TextChanged(sender As Object, e As EventArgs) Handles TextBoxSearch.TextChanged
    Dim search As String = Regex.Replace(TextBoxSearch.Text, "[^A-Za-z0-9-_ &]", "")
    Label1.Text = search
End Sub
0
Geo 13 Agustus 2019, 15:22

1 menjawab

Jawaban Terbaik

Beberapa item menu dan sebagainya dapat memiliki tombol pintas yang ditetapkan untuknya, misalnya:

enter image description here

Untuk menunjukkan bahwa karakter berikut harus digarisbawahi, ampersand digunakan. Jadi pada gambar di atas, menu "History" akan memiliki teks yang disetel ke "Hi&story".

Efek sampingnya adalah jika Anda memiliki ampersand dalam teks kontrol, seperti label, yang menggunakan fungsi itu, maka ampersand akan hilang dan karakter berikut akan digarisbawahi - kecuali jika Anda memiliki "&&" yang memberi tahu itu untuk menunjukkan hanya satu "&".

Untuk menonaktifkan perilaku kontrol tersebut, setel .Gunakan PropertiMnemonic ke False, mis.

Label1.UseMnemonic = False
2
Andrew Morton 13 Agustus 2019, 13:08