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

JavaScriptで文字列から特殊文字をすべて削除する正規表現の書き方

JavaScriptで文字列から特殊文字を削除する方法

JavaScriptでは、replace()メソッドと正規表現を組み合わせることで、文字列から特殊文字(記号類)を簡単に取り除くことができます。ここでは、実際に動作するサンプルコードを紹介します。

使用する正規表現:/[^\w\s]/gi

この正規表現の各要素の意味は以下の通りです。

  • [^ ]:角括弧内の先頭にある ^ は否定を表し、「パターンに一致しない文字」を対象とします
  • \w:英字・数字・アンダースコア(_)に一致します
  • \s:スペースやタブなどの空白文字に一致します
  • gフラグ:文字列全体に対してグローバルに置換を行います
  • iフラグ:大文字・小文字を区別せずにマッチングします

つまり、この正規表現は「英数字・アンダースコア・空白以外のすべての文字」に一致し、それらを空文字列に置き換えることで特殊文字を削除します。

サンプルコード

<html>
   <head>
      <script>
         var str = "@!Welcome to our website$$";
         document.write(str);
         
         // 特殊文字を削除
         document.write("<br>"+str.replace(/[^\w\s]/gi, ''));
      </script>
   </head>
   
  <body>
  </body>
</html>

実行結果

@!Welcome to our website$$
Welcome to our website

元の文字列に含まれていた @!$ などの記号がすべて除去され、英字とスペースだけが残っていることが確認できます。入力値のバリデーションやデータクレンジングなど、さまざまな場面で活用できるテクニックです。

  1. JavaScript正規表現で複数の一致をすべて取得する方法

    JavaScriptの正規表現で文字列内の複数の一致をすべて検索したい場合は、正規表現に「g(グローバル)フラグ」を付けて、exec()メソッドをwhileループで繰り返し呼び出すのが定番の手法です。以下で具体的な実装例を紹介します。 複数の一致を取得できる仕組み 通常の正規表現マッチングでは、最初の1件しか結果が返されません。しかし、正規表現の末尾に g フラグを付けると、内部の lastIndex プロパティが更新され、exec() を呼び出すたびに次の一致が順番に取得できます。そして一致がなくなった時点で exec() は null を返すため、while ループで null になるまで

  2. JavaScriptの正規表現を使って文字列からスペースを削除する方法

    JavaScriptで文字列内のスペースを削除したい場合は、replace()メソッドと正規表現を組み合わせるのが最も一般的な方法です。正規表現 /\s/g を使うことで、文字列中のすべての空白文字(半角スペース、タブ、改行など)を簡単に取り除くことができます。 基本的な使い方 \s は空白文字全般にマッチする特殊文字で、末尾の g(グローバルフラグ)を付けることで、最初に見つかった1箇所だけでなく、文字列全体のすべてのスペースが置換対象になります。 サンプルコード <html>    <head>    &n