検索

定义和用法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

语法
stringObject.replace(regexp/substr,replacement)

参数 描述
regexp/substr

必需。规定子字符串或要替换的模式的 RegExp 对象。

请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

返回值

一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

说明

字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

字符 替换文本
$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& 与 regexp 相匹配的子串。
$` 位于匹配子串左侧的文本。
$' 位于匹配子串右侧的文本。
$$ 直接量符号。

注: ECMAScript v3 では、replace() メソッドのパラメータ置換には文字列ではなく関数を使用できると規定されています。この場合、関数は一致するたびに呼び出され、関数が返す文字列が置換テキストとして使用されます。この関数の最初のパラメータは、パターンに一致する文字列です。次の引数は、パターン内の部分式に一致する文字列であり、そのような引数は 0 個以上存在できます。次のパラメータは、一致が発生する stringObject 内の位置を宣言する整数です。最後のパラメータは stringObject 自体です。

より基本的な例は、ここで参照できます: http://www.jb51.net/w3school/js/jsref_replace.htm

replacement() メソッドのパラメータ置換は、文字列ではなく関数にしてください。この場合、関数は一致するたびに呼び出され、関数が返す文字列が置換テキストとして使用されます。この関数の最初のパラメータは、パターンに一致する文字列です。次の引数は、パターン内の部分式に一致する文字列です。このような引数は 0 個以上存在できます。次のパラメータは、一致が発生する stringObject 内の位置を宣言する整数です。最後のパラメータは stringObject 自体です。

次に、JavaScript の正規表現を置き換えるいくつかの方法を示します (セカンド パーティやサードパーティのメソッドなど)。

コードをコピー コードは次のとおりです:

//次の例は取得に使用されます。 2 つの URL パラメータを取得し、urlRewrite
var reg=new RegExp("(http://www.qidian.com/BookReader/)(\d ),(\d ).aspx","gmi の前に実際の URL を返します。 ") ;
var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";

//方法 1、最も単純で最もよく使用される方法
var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");
alert(rep);

//方法 2、固定パラメータを持つコールバック関数を使用する
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1 "ShowBook.aspx?bookId=" p3 " &chapterId =" p3});
alert(rep2);

//メソッド 3、非固定パラメータのコールバック関数を使用する
var rep3=url.replace(reg,function(){var args=arguments; return args[1] "ShowBook.aspx?bookId= " args [2] "&chapterId=" args[3];});
alert(rep3);


//メソッド 4
//メソッド 4 はメソッド 3 と非常に似ています。置換された文字列を返すことに加えて、パラメーターを個別に取得することもできます

[コード]
var bookId;
var ChapterId;
function capText()
{
var args=arguments;
bookId=args[2];
ChapterId=args[3];
return args[1] "ShowBook.aspx?bookId=" args[2] "&chapterId=" args[3];
}

var rep4=url.replace(reg,capText);
alert(rep4);
alert(bookId);
alert(chapterId);


//replace メソッドを使用して正規表現のグループ化を取得することに加えて、test メソッドと exec メソッドを使用してグループ化を取得することもできますが、メソッドは異なります
var reg2=new RegExp ("(http://www.qidian.com/BookReader/)(\d ),(\d ).aspx","gmi");
var m=reg2.exec("http://www .qidian.com/BookReader /1017141,20361055.aspx");
var s="";
//(i = 0; i を取得します{
s = s m[i] "n";
}
alert(s);

bookId=m[2];
chapterId=m[3];
alert(bookId);
alert(chapterId);


//テスト メソッドを使用してグループを取得します
var reg3=new RegExp("(http://www.qidian.com/BookReader/)(\d ),(\d )。 aspx", "gmi");
reg3.test("http://www.qidian.com/BookReader/1017141,20361055.aspx");
//3 つのグループを取得
alert(RegExp .$1 );
alert(RegExp.$2);
alert(RegExp.$3);

var str="www.baidu.com";
//str.format("good","q")
str.replace(new RegExp("(\.)(bai)du "," g "), function () {
for (var I = 0; I & lt; argument.length; i)
{
Document.write (arguments [i]" & lt; br/& gt ;");
---------------
");
});

2 つの例 (通常のパラメーターと文字パラメーターを置き換えた結果が異なることを証明するため):

alert("123".replace("1",function(){var un;return un;})); // ポップアップ unknown23
alert("123".replace(new RegExp("1") " ),function(){var un;return un;})); //ポップアップ 23

いくつかの例:


replace() は最も単純 唯一の機能は単純な文字の置換です。例:


[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、更新して実行する必要があります
]


みんなが欲しい 実行後の結果がわかりますが、最初の文字が置き換えられただけです。しかし、正規表現を追加すると、結果は異なります。 replace() は正規表現をサポートしており、正規表現の規則に従って文字または文字列を照合し、それらを置換できます。

[Ctrl A すべて選択 注:
外部 Js を導入する必要がある場合は、更新して実行する必要があります
]


しかし、結果は同じです。変更はありません。正規表現に慣れている場合は、これは問題になりません。ちょっとした修正でOKです。
コードをコピー
コードは次のとおりです:






これを実行して効果を確認することもできます。
コードをコピー
コードは次のとおりです:






この時点で、replace() は正規表現の使用能力に直接比例します。正規表現が強力であればあるほど、あなたはその正規表現の虜になります。
もちろん、ここで replace() を推奨する理由は、正規表現と連携できるからではなく、関数と連携して強力な機能を発揮できるからです。
まず簡単な例を見てみましょう。すべての単語の最初の文字を大文字にします。
コードをコピー
コードは次のとおりです:





から見ることができます上記は、正規表現「g」フラグが存在する場合、文字列全体が処理されること、つまり、変更関数の変換が一致するすべてのオブジェクトに適用されることを意味します。この関数には 3 つ以上のパラメータがあり、具体的な数は正規表現によって異なります。
関数と正規表現の連携により、文字列を処理する replace() の機能がかつてないほど強力になりました。
最後に、replace() を使用して文字列内のすべての単語を反転する例を紹介します。
コードは次のとおりです:


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptの文字列文字を交換しますJavaScriptの文字列文字を交換しますMar 11, 2025 am 12:07 AM

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

独自のAjax Webアプリケーションを構築します独自のAjax Webアプリケーションを構築しますMar 09, 2025 am 12:11 AM

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか?独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか?Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか?ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか?Mar 18, 2025 pm 03:14 PM

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか?ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか?Mar 18, 2025 pm 03:16 PM

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

jQueryマトリックス効果jQueryマトリックス効果Mar 10, 2025 am 12:52 AM

マトリックスの映画効果をあなたのページにもたらしましょう!これは、有名な映画「The Matrix」に基づいたクールなJQueryプラグインです。プラグインは、映画の古典的な緑色のキャラクター効果をシミュレートし、画像を選択するだけで、プラグインはそれを数値文字で満たされたマトリックススタイルの画像に変換します。来て、それを試してみてください、それはとても面白いです! それがどのように機能するか プラグインは画像をキャンバスにロードし、ピクセルと色の値を読み取ります。 data = ctx.getimagedata(x、y、settings.greasize、settings.greasize).data プラグインは、写真の長方形の領域を巧みに読み取り、jQueryを使用して各領域の平均色を計算します。次に、使用します

シンプルなjQueryスライダーを構築する方法シンプルなjQueryスライダーを構築する方法Mar 11, 2025 am 12:19 AM

この記事では、jQueryライブラリを使用してシンプルな画像カルーセルを作成するように導きます。 jQuery上に構築されたBXSLiderライブラリを使用し、カルーセルをセットアップするために多くの構成オプションを提供します。 今日、絵のカルーセルはウェブサイトで必須の機能になっています - 1つの写真は千の言葉よりも優れています! 画像カルーセルを使用することを決定した後、次の質問はそれを作成する方法です。まず、高品質の高解像度の写真を収集する必要があります。 次に、HTMLとJavaScriptコードを使用して画像カルーセルを作成する必要があります。ウェブ上には、さまざまな方法でカルーセルを作成するのに役立つ多くのライブラリがあります。オープンソースBXSLiderライブラリを使用します。 BXSLiderライブラリはレスポンシブデザインをサポートしているため、このライブラリで構築されたカルーセルは任意のものに適合させることができます

Angularを使用してCSVファイルをアップロードおよびダウンロードする方法Angularを使用してCSVファイルをアップロードおよびダウンロードする方法Mar 10, 2025 am 01:01 AM

データセットは、APIモデルとさまざまなビジネスプロセスの構築に非常に不可欠です。これが、CSVのインポートとエクスポートが頻繁に必要な機能である理由です。このチュートリアルでは、Angular内でCSVファイルをダウンロードおよびインポートする方法を学びます

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。