JavaScriptの正規表現(RegExp)で角括弧内に含まれない文字を検索する方法
否定文字クラスとは
JavaScriptの正規表現で、特定の文字「以外」を検索したい場合は、否定文字クラスと呼ばれるパターンを使用します。これは角括弧 [ ] の中の先頭にキャレット(^)を記述することで実現でき、「括弧内に列挙されていない任意の1文字」にマッチします。
構文
[^...]たとえば [^m] と書けば、「m 以外の任意の文字」に一致します。
サンプルコード
以下のコードでは、文字列から「m」以外のすべての文字を検索しています。
<html>
<head>
<title>JavaScript Regular Expression</title>
</head>
<body>
<script>
var myStr = "Welcome! Welcome to the website!";
var reg = /[^m]/g;
var match = myStr.match(reg);
document.write(match);
</script>
</body>
</html>実行結果のポイント
パターンの末尾に付けている g フラグはグローバル検索を意味し、文字列全体から条件に合うすべての文字を抽出します。match() メソッドの戻り値は配列になるため、この例では「W」「e」「l」「c」「o」など、元の文字列から「m」を除いたすべての文字が順番に格納されます。
なお、否定文字クラスは複数の文字や範囲指定にも対応しています。例えば [^a-z] なら小文字のアルファベット以外、[^0-9] なら数字以外の文字にマッチするため、入力値のバリデーションなど幅広い場面で活用できます。
-
JavaScriptの配列から2番目に大きい要素を効率的に見つける方法
JavaScriptで配列の中から2番目に大きい要素を取得したい場面はよくあります。本記事では、ループを1回だけ使って効率的に求める方法を、実際のコードと実行結果付きで解説します。 サンプル配列の準備 まず、例として次のような数値の配列を用意します。 var numbers = [10, 50, 80, 60, 89]; 2番目に大きい要素を見つけるコード 最大値と2番目の値を同時に追跡しながら、配列を一度だけ走査するのがポイントです。 var numbers = [10, 50, 80, 60, 89]; // 安全な整数の最小値で初期化 var firstLargerNumber = N
-
【JavaScript】否定先読みを使って、別の文字に続く特殊文字をすべて置き換える方法
はじめにJavaScriptで文字列を処理していると、「<」などの特殊文字が連続して含まれているケースに遭遇することがあります。本記事では、否定先読み(ネガティブ・ルックアヘッド)を使った正規表現と replace() メソッドを組み合わせて、特殊文字の直後に別の文字が続く場合のみスペースを挿入する方法を解説します。まず、例として次のように特殊文字「<」が連続した文字列を用意します。var sentence = <My<Name<is<John<Doe;replace() と正規表現による置換処理この問題を解決するには、replace() メソッドと正