JavaScriptの正規表現(RegExp)で文字列内の単語文字を検索する方法
JavaScriptの正規表現を使って文字列から単語文字(半角英数字およびアンダースコア:a〜z、A〜Z、0〜9、_)を検索するには、メタ文字 \w を使用します。
単語文字とは
\w は以下のいずれか1文字に一致する特殊文字クラスです。
- 英小文字:a〜z
- 英大文字:A〜Z
- 数字:0〜9
- アンダースコア:_
つまり、\w は [A-Za-z0-9_] と同じ意味を持ちます。記号や空白、日本語などのマルチバイト文字は一致対象外となる点に注意してください。
サンプルコード
次のコードでは、グローバル検索フラグ g を付けた正規表現 /\w/g を match() メソッドと組み合わせることで、文字列内のすべての単語文字を配列として取得しています。
<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>
実行結果
1,0,0,R,e,s,p,o,n,s,i,v,e
この例では、元の文字列「100% Responsive!」に含まれる「%」「!」および空白が除外され、英数字のみが1文字ずつ抽出されていることがわかります。
補足:単語文字以外を検索したい場合
逆に、単語文字「以外」の文字(記号・空白など)を検索したい場合は、大文字の \W を使用します。また、連続した単語全体を取得したい場合は /\w+/g のように量指定子 + を組み合わせると便利です。
-
JavaScriptで区切り文字ごとに文字列を単語単位で分割する方法|split()とfilter()の組み合わせ
はじめに JavaScriptでは、split()メソッドとfilter()メソッドを組み合わせることで、区切り文字で区切られた文字列をきれいに単語ごとへ分割することができます。本記事では、具体的な構文から実際の実行例まで、わかりやすく解説します。 基本構文 すべての単語の後に区切り文字が付いている文字列を分割したい場合は、次の構文を使用します。 var anyVariableName = yourVariableName.split(パラメータ).filter(value => value); 末尾に .filter(value => value) を付けているのがポイントです
-
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];サンプルコード以下が実際のコードです。外側のループで文(