2015-10-10 40 views
0

我找到了一個鏈接來討論用於定義有效電子郵件地址的正則表達式。無效的電子郵件地址字符導致SQL數據庫失敗

http://regular-expressions.mobi/email.html

它說,這是一個RFC 2822標準,定義了一個有效的電子郵件地址。但是,它解釋了一些字符,例如'可能會導致SQL數據庫失敗。 SQL中是否有解決方案可以接受此類電子郵件地址?

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) 

回答

1

對於任何試圖直接插入到SQL數據庫中的數據,您都會遇到此問題。將會有一個轉義字符,通常是\,您可以在問題字符之前加上'以便它們工作。

+0

對於所有非字母數字字符,對於SQL建議,我應該在前面添加\嗎? – technerdius

+0

這取決於您使用哪個數據庫引擎,因此超出了本部分的堆棧交換 – JGNI

相關問題