JavaScript正規表現 - 交換時にケースを強制します
-
18-09-2019 - |
質問
JavaScript Regex Standardは、検索/交換を行うときにケースを強制するサポートをサポートしますか?
私は通常、正規表現の置換部分にある捕獲グループのケースを強制するための uなどのオプションを知っています。しかし、JavaScript Regexでこれを行う方法を理解することはできません。 JavaScriptコード自体にはアクセスできません むしろ、私が使用しているプログラムは、Regexエンジン自体に渡される正規表現の弦のエントリを許可します。
解決
私があなたを正しく理解しているなら、いいえ。
正規表現パターン内からJavaScript(一致を大文字に変換する)を評価することはできません。
私はstr.replace()が大文字に変換することのみを知っています。
他のヒント
文字列のマッチングは正規表現を使用して行われます。ただし、交換しているサブジェクト文字列の部分(正規表現の一致で供給されている)のみを気にかけているだけでなく、それを与えるものに基づいて直接文字列交換を行います:
var subject = "This is a subject string";
// fails, case-sensitive match by default
subject.replace(/this/, "That");
// succeeds, case-insensitive expression using /i modifier, replaces the word "This" with the word "That"
subject.replace(/this/i, "That");
これで、一致した文字列の一部をキャプチャして、それを使用してケースを変更したい場合は、式グループ(式の括弧)を使用することもできます。
var subject = "This is a subject string";
var matches = subject.match(/(subject) string/i);
if (matches.length > 0)
{
// matches[0] is the entire match, or "subject string"
// matches[1] is the first group match, or "subject"
subject.replace(matches[1], matches[1].toUpperCase());
// subject now reads "This is a SUBJECT string"
}
要するに、試合をすることで、必要に応じてケース感受性を処理できます。交換を行うことは、交換に使用する直接的な文字列を伝えるのと同じくらい簡単です。
JavaScriptの正規表現は、デフォルトでケースに敏感であり、渡された場合、サポートケースの不感であります /i
国旗。
所属していません StackOverflow