JavaScript正規表現における\wと\Wの違いとは?
\w と \W の違い
JavaScriptの正規表現において、\w と \W には重要な違いがあります。\w は「単語文字(ワードキャラクタ)」、つまり英数字やアンダースコアにマッチするのに対し、\W は「単語文字以外の文字(ノンワードキャラクタ)」、たとえば & や ^、% などの記号にマッチします。なお、\w は文字クラス [A-Za-z0-9_] と同等、\W はその否定である [^A-Za-z0-9_] と同等と考えると理解しやすいでしょう。以下で詳しく見ていきましょう。
構文1
new RegExp("\\w", "g");
上記のコードは、JavaScriptで「単語文字」を検索するための構文です。
構文2
new RegExp("\\W", "g");
上記のコードは、JavaScriptで「単語文字以外の文字」を検索するための構文です。
例1
次の例では、\w にグローバルフラグ「g」を組み合わせて使用しています。グローバルフラグ「g」を指定しない場合、出力には最初に見つかった英数字1文字のみが表示されます。ここでは「g」を指定しているため、文字列中のすべての英数字が、以下の出力のように表示されます。
<html> <body> <script> var str = "**Tutorix is the best e-learning platform%!"; var regpat = /\w/g; var result = str.match(regpat); document.write(result); </script> </body> </html>
出力
T,u,t,o,r,i,x,i,s,t,h,e,b,e,s,t,e,l,e,a,r,n,i,n,g,p,l,a,t,f,o,r,m
例2
次の例では「\W」を使用しているため、出力には「単語文字以外の文字」が表示されます。グローバルフラグ「g」を指定しない場合は、最初の「単語文字以外の文字」のみが表示されます。ここでは「g」を指定しているため、すべての単語文字以外の文字(記号やスペースなど)が、以下の出力のように表示されます。
<html> <body> <script> var str = "**Tutorix is the best e-learning platform%!"; var regpat = /\W/g; var result = str.match(regpat); document.write(result); </script> </body> </html>
出力
*,*, , , , ,-, ,%,!
このように、\w と \W は互いに補完の関係にあります。文字列から英数字だけを抽出したい場合は \w を、記号やスペースなどの記号類を検出したい場合は \W を使うと、正規表現による文字列処理が効率的に行えます。
-
【初心者向け】JavaScriptのescape()関数とは?使い方と非推奨の理由を解説
JavaScriptのescape()関数とはJavaScriptのescape()関数は、文字列をエンコードするために使用される関数です。文字列内の特殊文字をASCII形式のエスケープシーケンス(%xx の形式)に変換します。ただし、この関数はECMAScript v3以降で非推奨(deprecated)とされており、現在の開発では使用が推奨されていません。URIのエンコード目的であれば、代わりにencodeURI()やencodeURIComponent()を使用することが標準的な方法です。escape()の使用例それでは、実際にJavaScriptのescape()関数を使用したサンプル
-
JavaScriptのエスケープ文字とは?特殊文字のエスケープ方法と一覧を解説
エスケープ文字とは?エスケープ文字とは、プログラム上で本来意図した意味とは別の特別な意味に解釈されてしまう文字のことです。たとえば、ダブルクォートやシングルクォート、改行コードなどが該当します。こうした文字を「そのままの文字」として扱い、画面に出力したい場合には、直前にバックスラッシュ「\」を付けて記述します。この操作を「エスケープ処理」と呼びます。JavaScriptの主なエスケープ文字一覧コード意味・出力結果\bバックスペース\fフォームフィード\n改行(ニューライン)\rキャリッジリターン\t水平タブ\v垂直タブ\シングルクォート()\ダブルクォート()\\バックスラッシュ(\)バックス