web-dev-qa-db-ja.com

jQuery-文字列内のすべての括弧を置き換える

私はこれを試しました:

mystring= mystring.replace(/"/g, "").replace(/'/g, "").replace("(", "").replace(")", "");

すべての二重引用符と単一引用符で機能しますが、括弧の場合、これは文字列の最初の括弧のみを置き換えます。

JavaScriptを使用して文字列内のすべての括弧を置き換えるように機能させるにはどうすればよいですか?または、文字列内のすべての特殊文字を置き換えますか?

22
HaBo

以下を試してください:

mystring= mystring.replace(/"/g, "").replace(/'/g, "").replace(/\(|\)/g, "");

これらの厄介な括弧をつかむためのREGEXの少し。

34
George Reith

次のようなものを使用する必要があります。

mystring = mystring.replace(/["'()]/g,"");

他の人のために機能していなかった理由は、「グローバル」引数を忘れたためです(g)

ご了承ください [...]は文字クラスです。それらの括弧の間はすべて置き換えられます。

21
Joseph Marikle

単一の置換ステートメントでこれを実行できるはずです。

mystring = mystring.replace(/["'\(\)]/g, "");

すべてのspecial文字を置き換えようとしている場合は、このようなパターンを使用できます。

mystring = mystring.replace(/\W/g, "");

これは、Word以外の文字を置き換えます。

6
Sam Greenhalgh

括弧を探している場合は、正規表現を使用することもできます。括弧をエスケープするだけです。

mystring = mystring.replace(/\(|\)/g, '');

これにより、文字列全体からすべての(および)が削除されます。

2
jAndy

ただ1つの交換が行います:

"\"a(b)c'd{e}f[g]".replace(/[\(\)\[\]{}'"]/g,"")
1
nana

それはうまくいくはずです:

mystring= mystring.replace(/"/g, "").replace(/'/g, "").replace(/\(/g, "").replace(/\)/g, "");
0
David Laberge

複数のオカレンスを置き換えるには、文字列リテラルを使用している検索文字列として正規表現を使用する必要があるためです。文字列で検索すると、最初に出現したものだけが置き換えられます。

0
Ash Burlaczenko

文字列ベースの置換方法はグローバルに置換されません。そのため、おそらく正規表現ベースの置換方法を使用する必要があります。注意する必要があります:

()はグループマッチングに使用されるため、エスケープする必要があります。

mystring= mystring.replace(/"/g, "").replace(/'/g, "").replace(/\(/g, "").replace(/\)/g, "");
0
Matt Fellows

これで問題を解決できます:myString = myString.replace(/\"|\'|\(|\)/)

0
user3745828