JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで単語以外の文字を削除するには?正規表現を使った実装方法を解説

単語以外の文字を削除する基本の考え方

JavaScriptで文字列から単語文字(英数字やアンダースコアなど)以外の記号・特殊文字を取り除くには、正規表現を利用します。考え方はシンプルで、単語以外の文字に一致するパターンを定義し、マッチした文字をすべて空文字列('')に置き換えるだけで削除が完了します。

サンプルコード

次の例では、文字列中に「~」や「!」「@」といった多くの記号が混在しており、その間に「Tutorix is the best e-learning platform」というテキストが存在します。関数内では、まず引数がnullまたは空文字列の場合にfalseを返すチェックを行い、そのうえで、正規表現に一致した文字を空文字列へ置き換えることで単語文字だけを抽出しています。

<html>
<body>
<script type="text/javascript">
   function remNonWord (string) {
      if ((string===null) || (string===''))
      return false;
      else
      string = string.toString();
      var PATTERN = /[^\x20\x2D0-9A-Z\x5Fa-z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/g;
      return string.replace(PATTERN, '');
   }
   document.write(remNonWord('Tutorix is the ~!@^&";\'/?>#$%*()+`={}[]|\\:<.,best e-learning            platform'));
</script>
</body>
</html>

実行結果

Tutorix is the best e-learning platform

正規表現パターンのポイント

使用しているパターン/[^\x20\x2D0-9A-Z\x5Fa-z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/gは、「半角スペース」「ハイフン」「英数字」「アンダースコア」および各種アクセント付きラテン文字を除く、すべての文字に一致します。冒頭の^は否定(〜以外)を意味し、末尾のgフラグによって文字列全体で繰り返し置換が行われます。そのため、空白やハイフンを残しながら記号類だけをきれいに除去できるのが特徴です。

なお、より簡潔に書きたい場合は、\w([A-Za-z0-9_]と同等)を活用した/[^\w\s\-]/gのようなパターンでも同様の処理が可能です。削除したい文字の種類に応じて、パターンを柔軟に調整してみてください。


  1. Excelで先頭3文字を削除する4つの方法|RIGHT・REPLACE・MID関数とVBA

    構造化されていない生データを扱っていると、必要な情報だけを取り出したい場面がよくあります。たとえば、文字列の先頭から1文字目、2文字目、あるいは3文字目を取り除いて値を取得したいケースです。Excelには、こうした作業を簡単に行える関数がいくつか用意されています。さらに、独自のカスタム関数を作成して文字列から文字を削除することも可能です。この記事では、Excelで先頭3文字を削除する4つの方法を詳しく解説します。 練習用ワークブックのダウンロード 記事を読みながら実際に操作して練習できるよう、練習用ワークブックをダウンロードしてご利用ください。 Excelで先頭3文字を削除する4つの方法

  2. Excelで英数字以外の文字を削除する2つの方法|VBAとユーザー定義関数を徹底解説

    本記事では、Excelのセルから英数字以外の文字を削除する方法を詳しく解説します。生データを扱っていると、セルの中に数値・テキスト・記号などが混在しているケースは非常によくあります。こうした不要な文字を取り除きたい場面では、VBAマクロやユーザー定義関数を活用すると効率的に処理できます。 記事を読みながら実際に操作できるよう、練習用ブックをダウンロードしてぜひ試してみてください。 Excelで英数字以外の文字を削除する2つの方法 分析用の生データを受け取ったとき、1つの列に数値やテキストが英数字以外の文字と混ざっていることがあります。スムーズに作業を進めるためには、不要な文字を文字列から除去す