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
元の文字列に含まれていた @、!、$ などの記号がすべて除去され、英字とスペースだけが残っていることが確認できます。入力値のバリデーションやデータクレンジングなど、さまざまな場面で活用できるテクニックです。
-
JavaScript正規表現で複数の一致をすべて取得する方法
JavaScriptの正規表現で文字列内の複数の一致をすべて検索したい場合は、正規表現に「g(グローバル)フラグ」を付けて、exec()メソッドをwhileループで繰り返し呼び出すのが定番の手法です。以下で具体的な実装例を紹介します。 複数の一致を取得できる仕組み 通常の正規表現マッチングでは、最初の1件しか結果が返されません。しかし、正規表現の末尾に g フラグを付けると、内部の lastIndex プロパティが更新され、exec() を呼び出すたびに次の一致が順番に取得できます。そして一致がなくなった時点で exec() は null を返すため、while ループで null になるまで
-
JavaScriptの正規表現を使って文字列からスペースを削除する方法
JavaScriptで文字列内のスペースを削除したい場合は、replace()メソッドと正規表現を組み合わせるのが最も一般的な方法です。正規表現 /\s/g を使うことで、文字列中のすべての空白文字(半角スペース、タブ、改行など)を簡単に取り除くことができます。 基本的な使い方 \s は空白文字全般にマッチする特殊文字で、末尾の g(グローバルフラグ)を付けることで、最初に見つかった1箇所だけでなく、文字列全体のすべてのスペースが置換対象になります。 サンプルコード <html> <head> &n