2011-07-19 54 views
1

我使用正则表达式如下表达式替换Prolem在使用正则表达式替换功能

query=query.replace(/[^a-zA-Z 0-9*?:.+-^""_]+/g,'') 

但是,当我查询[email protected]#%d我的这个执行后得到[email protected]一个空白替换特殊字符“@”。 这意味着它不会取代@。为什么这样?

+0

你想完成什么?如果要除去字母以外的所有内容,为什么不直接使用'query.replace(/ [^ a-zA-Z] + /,'')'? – epoch

+0

epoch:我想用空白取代@,即'' – Romi

+0

epoch:不,我想替换除了我在表达式 – Romi

回答

3

你需要逃避-登录您的正则表达式(- =>\-),即:[^a-zA-Z 0-9*?:.+\-^""_]+,因此将匹配:[email protected]#%

+1

+1中给出的字符或将它移动到开始或结束'[^ a- zA-Z 0-9 *?:。+ ^“”_-] +' – stema

+0

polishchuk:为什么这么说,为什么逃避标志只影响@ charecter – Romi

+0

'-'在字符类内保留 – epoch