JavaScriptにおけるreplace方法

3362 ワード

定義と用法
replace()メソッドは、文字列の中で他の文字を一部の文字で置き換えたり、正規表現と一致するサブストリングを置き換えるために使用されます.
stringObject.replace(regexp/substr,replacement)
パラメータ
説明
regexp/substr
必要です.サブ文字列または置換するモードのRegExpオブジェクトを指定します.この値が文字列の場合、最初にRegExpオブジェクトに変換されるのではなく、検索する直接量テキストモードとして使用されます.
replace ment
必要です.文字列の値.テキストの置換または置換テキストを生成する関数が定められています.
 
戻り値
 
新しい文字列は、 replace ment regexpの最初の整合またはすべての整合を置換して得られた.
 
 
正規文字
 
replace Valueは文字列であってもいいです.文字列に特定の文字がいくつかあると、特定の文字列に変換されます.
 
文字
テキストを置換
$
直接量記号(つまり'米ドル'の文字として使う)
$
正則にマッチする文字列
$
文字列の左の文字にマッチします.
$
文字列の右の文字にマッチします.
$1、$2、$3、...n
マッチング結果に対応するパケットマッチング結果
 
正規表現と置換文字列
'I am loser,You are loser'.replace(/loser/g,'hero')
//I am hero,You are hero
正規表現を使用して、正規のglobal属性をtrueに変更すると、すべてのloserがHeroになります.
 
マッチする文字に対して、ドル&文字を使って、かっこを大きくします.
var sStr='           replace   ';
sStr.replace(/     /,'{$&}');
//    {     }  replace   
内容を$と''の文字で置換します.
'abc'.replace(/b/,"$`");
//aac
'abc'.replace(/b/,"$'");
//acc
グループマッチングを使って新しい文字列をグループ化します.
'[email protected]'.replace(/(.+)(@)(.*)/,"$2$1")
//@nimojs
replace Valueパラメータは一つの関数とすることができます.
StringObject.replace(search Value)のreplacceValueは関数でもいいです.replace Valueが関数であれば、この関数のargmentsはn+3つのパラメータ(nは正則でマッチする回数)があります.
例を見て理解を助ける:
function logArguments(){    
    console.log(arguments);
//["[email protected]", "nimojs", "@", "126.com", 0, "[email protected]"] 
    return '             '
}
console.log(
    '[email protected]'.replace(/(.+)(@)(.*)/,logArguments)
)
パラメータはそれぞれ
  • にマッチする文字列(この例は[email protected]上のコードの正則を修正して、マッチした文字を確認して理解を助けることを推奨します.
  • 正則でパケットマッチングが複数使用されている場合はこのパラメータがありません.
  • は、文字列の対応するインデックス位置(この例は0)
  • と一致する.
  • 元の文字列(この例は[email protected])
  • カスタム関数を使ってA-G文字列を小文字に変更します.
    'JAVASCRIPT'.replace(/[A-G]/g,function(){
        return arguments[0].toLowerCase();
    })
    //JaVaScRIPT
    ユーザー定義の関数を使って、コールバックの置換を行います.行の中のスタイルのシングルクォーテーションマークを削除します.
    '<span style="font-family:\'    \';">demo</span>'.replace(/\'[^']+\'/g,function(){      
        var sResult=arguments[0];
        console.log(sResult);//'    '
        sResult=sResult.replace(/\'/g,'');
        console.log(sResult);
    //    
        return sResult;
    })
    //<span style="font-family:    ;">demo</span>