2011-07-08 16 views
3

を使用して、空白と私は"" で一部の文字を置き換えるために、この正規表現式を使用していますが、私は問題正規表現

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

としてそれを使用しかし、私のクエリは+White+Diamondようであるとき、I結果が+White+Diamondになりますが、クエリが-White+diamondの場合はWhite+diamondとなり、-""に置き換えられます。 問題点を教えてください。

答えて

2

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

を私はあなたにもスペースを除外したいと仮定しています。そうでない場合は、文字クラスから最後のスペースを削除します。

3

正規表現では、-は「from ... to ...」を意味し、-にはバックスラッシュ(\-)をエスケープします。 Oltarusが言っ

+2

または、クラスの最後または冒頭に配置します。 –

+0

@Romiこの場合、 '+ -^'は「プラス、ホワイトスペースから*ホワイトスペース、cirumflexまで」を意味します。ところで、 '[] 'の文字の間にスペースは必要ありません。 – SteeveDroz