2009-12-03 108 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