3

これは単純な replace() の質問です。以下の関数で部分文字列を置き換えることができません。

function linkOnClick(){
    var anyNameYouLike = 'some sort of text/string right here';
    anyNameYouLike.replace('right','in');
    alert(anyNameYouLike)
}

「ここに何らかのテキスト/文字列」を返す必要がありますが、返されません。私は何を間違っていますか?私はJavascriptにかなり慣れていません(明らかでない場合...)

4

2 に答える 2

21
anyNameYouLike = anyNameYouLike.replace('right','in');
于 2012-11-25T08:19:32.290 に答える
9

JavaScript では、文字列は不変です (変更されることはありません)。そのため、.replace()関数は呼び出した文字列を変更しません。代わりに、新しい文字列を返します。したがって、変更された文字列を含めたい場合はanyNameYouLike、次のように結果を割り当てる必要があります。

anyNameYouLike = anyNameYouLike.replace('right','in');

詳細については、次のメソッドのMDN の説明を.replace()参照してください。

パターンの一部またはすべての一致を置換で置き換えた新しい文字列を返します。パターンは文字列または正規表現にすることができ、置換は文字列または一致ごとに呼び出される関数にすることができます。

そして、.replace()メソッドの説明では、次のように述べています。

このメソッドは、呼び出された String オブジェクトを変更しません。単純に新しい文字列を返します。

于 2012-11-25T08:25:00.070 に答える