2016-06-07 131 views
0

我已經使用微軟MSDN示例從字符串中刪除非法字符(用於mysql查詢)。vb.net刪除非法字符 - 但不是空格

但是,如何修改函數以便它不會刪除字符串中的空格? 例如輸入「測試測試」將顯示爲「TESTTEST」

Function CleanInput(strIn As String) As String 
    ' Replace invalid characters with empty strings. 
    Try 
     Return Regex.Replace(strIn, "[^\w\[email protected]]", "") 
    ' if we timeout when replacing invalid characters, we should return String.Empty. 
    Catch e As RegexMatchTimeoutException 
     Return String.Empty   
    End Try 
End Function 

任何其他有用的技巧,也很受青睞

發現的解決方案:添加一個\ s的正則表達式字符串,解決了我的問題

 Return Regex.Replace(strIn, "[^\w\s\[email protected]]", "") 
+1

有用的提示:不要注入SQL的第一個地方,這成爲一個問題。 –

+0

如果您需要在數據庫中插入O'Brien這樣的名字,該怎麼辦?這段代碼不會省略撇號嗎?爲什麼要經過這個努力?只需使用參數化查詢,您就不必擔心這一點。 –

回答

0

該功能的實際更新版本如下:

Return Regex.Replace(strIn, "[^\w ]", "") 

讓我知道如果這對你不起作用。

+0

我已經想通了。我應該添加\ s到正則表達式 Regex.Replace(strIn,「[^ \ w \ s \。@ - ]」,「」) – Tincho