JavaScriptの正規表現(RegExp)で文字列内の非単語文字を検索する方法
JavaScriptの正規表現を使って、文字列の中から「非単語文字」(英字 a〜z・A〜Z、数字 0〜9、アンダースコア _ 以外の文字)を検索したい場合は、メタ文字 \W を使用します。
非単語文字とは
\w が「単語文字」に一致するのに対し、\W はその否定、つまり以下以外のすべての文字に一致します。
- アルファベット小文字:a〜z
- アルファベット大文字:A〜Z
- 数字:0〜9
- アンダースコア:_
たとえば、「%」や「!」などの記号や空白は非単語文字として検出されます。
サンプルコード
次のコードでは、文字列「100% Responsive!」から非単語文字をすべて抽出しています。パターンの末尾に付けているフラグ g を指定することで、一致するすべての箇所を取得できます。
<html> <head> <title>JavaScript Regular Expression</title> </head> <body> <script> var myStr = "100% Responsive!"; var reg = /\W/g; var match = myStr.match(reg); document.write(match); </script> </body> </html>
実行結果
上記のコードを実行すると、「%」「!」およびスペースが非単語文字として検出され、画面には次のように出力されます。
%, ,!
ポイント
\Wは[^a-zA-Z0-9_]と同じ意味を持ちます。- フラグ
gを付けないと、最初に一致した1件のみが返されます。 match()メソッドは、一致した文字列を配列として返します。
-
JavaScriptのincludes()メソッドで配列内の特定の単語を検索する方法
配列の中から特定の単語を見つけたい場合は、includes()メソッドを使うのが最も手軽です。まず、次のような文章を要素として持つ配列を用意します。var sentence = [My Name is John Smith. My Favourite Subject is JavaScript. I live in US. I like Hockey];続いて、上記の「sentence」配列の中から検索したいキーワードをまとめた配列を定義します。var keywords = [John, AUS, JavaScript, Hockey];サンプルコード以下が実際のコードです。外側のループで文(
-
【JavaScript】ゼロを含む文字列を数値に変換する方法をわかりやすく解説
JavaScriptでは、ドット(.)やゼロを含む文字列を数値として扱いたい場面があります。例えば、次のような文字列があったとします。var stringValue="453.000.00.00.0000";このようにゼロや区切り文字を含む文字列をそのまま数値変換しようとすると、意図した結果になりません。そこで、replace()メソッドで不要なドットを取り除き、parseInt()で整数に変換するという2段階の処理を行います。var numberValue = parseInt(stringValue.replace(/\./gm, ''));コード全体の