2009-12-03 136 views
0

我有以下的正則表達式正則表達式表達問題

/[^a-zA-Z0-9 ]/g 

我想包括"在下面的代碼段

onKeyUp="this.value=this.value.replace(/[^a-zA-Z0-9"]/g,'') 

我使用上述正則表達式

問題我面對在這裏是上面的正則表達式允許我包含其他特殊字符(&,*等)。我如何避免它?

回答

2

只要把字符轉換成字符類,同時採取正確的編碼考慮:

onKeyUp="this.value=this.value.replace(/[^a-zA-Z0-9"&*]/g,'')" 

這裏需要編碼"&當您描述HTML屬性值聲明的值時,字符引用"&

1

該代碼的第一個明顯問題是作爲正則表達式的一部分的"不會轉義,儘管它在"有限字符串文字內。你可能想嘗試將其更改爲:

onKeyUp="this.value=this.value.replace(/[^a-zA-Z0-9\" ]/g,'')

+0

我試過這個,但它沒有工作 – manugupt1 2009-12-03 10:07:11

+0

是的,我後來意識到我實際上並沒有回答你的問題,只是解決了一個明顯的問題,可能是一個阻礙解決的問題。 @Gumbo的答案是一個適當的答案,尤其是在這種情況下。 – Romain 2009-12-03 10:12:31

+0

在屬性值中使用簡單的'''將不起作用 – Gumbo 2009-12-03 11:21:30