すべてを削除する方法:
文字、数字、スペース、感嘆符、文字列からの疑問符?
メソッドが国際言語 (UTF-8) をサポートしていることが重要です。
すべてを削除する方法:
文字、数字、スペース、感嘆符、文字列からの疑問符?
メソッドが国際言語 (UTF-8) をサポートしていることが重要です。
正規表現を使用できます
myString.replace(/[^\w\s!?]/g,'');
これにより、単語の文字、スペース、感嘆符、または質問以外のすべてが置き換えられます。
Character Class :
\w
「単語文字」の略で、通常は[A-Za-z0-9_]
. アンダースコアと数字が含まれていることに注意してください。
\s
「空白文字」の略です。含まれています[ \t\r\n]
。
アンダースコアが必要ない場合は、単に[A-Za-z0-9]
.
myString.replace(/[^A-Za-z0-9\s!?]/g,'');
Unicode 文字の場合\u0000-\u0080
、式に次のようなものを追加できます。これにより、その Unicode 範囲内のすべての文字が除外されます。削除したくない文字の範囲を指定する必要があります。すべてのコードはUnicode Mapで確認できます。保持したい文字または文字の範囲を追加するだけです。
例えば:
myString.replace(/[^A-Za-z0-9\s!?\u0000-\u0080\u0082]/g,'');
これにより、前述のすべての文字 ( から までの範囲) が許可され\u0000-\u0080
ます\u0082
。削除し\u0081
ます。
これまでに投稿された両方の回答は疑問符を省略しました。コメントしますが、まだ十分な担当者がいません。
Davidは正しいです、sachleenの正規表現はアンダースコアを残します。次のように変更されたrcdmkの正規表現でうまくいきますが、国際的な文字を気にする場合は、さらに複雑になる可能性があります。
var result = text.replace(/[^a-zA-Z0-9\s!?]+/g, '');
これにより、新しい行とタブ、およびスペースが残ります。新しい行やタブも削除したい場合は、次のように変更します。
var result = text.replace(/[^a-zA-Z0-9 !?]+/g, '');
text = "A(B){C};:a.b*!c??!1<>2@#3"
result = text.replace(/[^a-zA-Z0-9]/g, '')
戻るべきABCabc123
まず、テキストを次のように定義します
A B C a b c 1 2 3
が、ランダムな文字を次のように設定しresult
ます。
text.replace(...)
パラメータは次のとおりです。
/.../g
、/.../
:^
反転することを意味します。次の文字は削除しないでください。
a-z
(小文字)、A-Z
(大文字)、0-9
(数字)
g
グローバルを意味し、最初の一致だけでなくすべての一致を削除します2 番目のパラメーターは置換文字です。指定された文字列を保持するために、空の文字列に設定します。が指定されている場合
は、次のように返されます。
"A B C a b c 1 2 3"
次のような正規表現で試すことができます。var cleaned = someString.replace(/[^a-zA-Z0-9! ]+/g, "");