[解決済み] 文字列変数を使ってRegExpをオンザフライで作成する
2022-05-07 19:35:36
質問
以下のような再利用可能なものを作りたいとします。
function replace_foo(target, replacement) {
return target.replace("string_to_replace",replacement);
}
こんな感じでやってみようかな。
function replace_foo(target, string_to_replace, replacement) {
return target.replace(string_to_replace,replacement);
}
文字列リテラルでは、これは十分に簡単です。しかし、もう少し巧妙に正規表現を使いたい場合はどうしたらよいでしょうか。たとえば
しかし
string_to_replace
. 本能的に、私は上記のようなことをやって拡張しようとします。
function replace_foo(target, string_to_replace, replacement) {
return target.replace(/^string_to_replace/,replacement);
}
これはうまくいかないようです。私の推測では、これは
string_to_replace
は文字列を表す変数ではなく、文字列リテラルです。文字列変数を使って、JavaScriptの正規表現をその場で作成することは可能でしょうか?可能であれば、このようなものがあれば最高です。
function replace_foo(target, string_to_replace, replacement) {
var regex = "/^" + string_to_replace + "/";
return target.replace(regex,replacement);
}
解決方法は?
そこには
new RegExp(string, flags)
ここで
flags
は
g
または
i
. だから
'GODzilla'.replace( new RegExp('god', 'i'), '' )
は、次のように評価されます。
zilla
関連
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] JavaScriptでページの一番上までスクロールする?
-
[解決済み] なぜ ++[[]][+[] +[+[]] は "10" という文字列を返すのでしょうか?
-
[解決済み] jQueryを使用してハイパーリンクのhref属性を変更する方法
-
[解決済み】JavaScriptで大きな文字列をn個のチャンクに分割する。
-
[解決済み】文字列がJSONであるかどうかをテストするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vue Element-uiは、アイコンを追加するためのツリーコントロールノードを詳細に実装しています。
-
Vueの要素ツリーコントロールに破線を追加する説明
-
vueの補間表現とv-textディレクティブの違いについて
-
vueにおけるfilterの適用シーンについて解説します。
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
JavaScriptのgetElementById、getElementsByTagNam、getElementsByClassNameの違いと使い方