2011-01-31 26 views

答えて

3

replace機能を使用できます。

str.replace(regexp|substr, newSubstr|function) 
69

replace()を正規表現で使用することは、最も柔軟で強力です。これは、JavaScriptの検索パターンのすべてのインスタンスをグローバルに置き換える唯一の方法です。 replace()の正規表現以外の変形は、最初のインスタンスのみを置き換えます。

例えば

var str = "foo gar gaz"; 

// returns: "foo bar gaz" 
str.replace('g', 'b'); 

// returns: "foo bar baz" 
str = str.replace(/g/gi, 'b'); 

後者の例では、末尾の/giはあなたが一般的に欲しいものである場合、無神経と(だけでなく、最初のインスタンスを交換しなければならないことを意味する)グローバルな交換を、示している場合あなたを文字列で置き換えています。

は、文字を削除代替として空の文字列を使用します。

var str = "foo bar baz"; 

// returns: "foo r z" 
str.replace(/ba/gi, ''); 
+1

ところで、 'str.replace( 'g'、 'b');は動作しません。 'str = str.replace( 'g'、 'b');を使うと答えが良くなります。 – Yuci

3

私はこれが古いです知っていますが、スプリットをすれば、それはすなわち、特定の文字の出現をすべて削除します参加:

var str = theText.split('A').join('') 

は明らかにそれは当てはまりません、文字列から「A」の出現をすべて削除します敏感

+1

これはインプレース関数ではないので、これを実行するには 'theText = theText.split( 'A')。join( '')'を実行する必要があります。このコマンドは、括弧などの奇妙な文字に特に役立ちます。 – cameronroytaylor

+0

あなたのコメントに照らして更新されました – atamata

14

ONELINER(一度に複数の)文字リストを削除 - 例えば電話番号から+,-, ,(,)を削除:

var str = "+(48) 123-456-789".replace(/[-+()\s]/g, ''); // result: "48123456789" 

我々は([]

間の不要な文字を入れて、正規表現[-+()\s]を使用"\s"は「スペース」文字エスケープです - Googleの文字が正規表現でエスケープされます)

2

これまで話をしてくれなかったもう1つの方法はsubstrメソッドです別の文字列から文字列を生成するには...これは、文字列の長さが定義されていて、文字列のどちらかの端に文字がある場合、または文字列の「静的な次元」内にある場合に便利です。

関連する問題