私は、文字でも数字でもない文字に一致する正規表現を見つけようとしています。(,, @、£、()などの文字...
見つかったら、空白スペースに置き換えたいです。
何かアドバイス。
私は、文字でも数字でもない文字に一致する正規表現を見つけようとしています。(,, @、£、()などの文字...
見つかったら、空白スペースに置き換えたいです。
何かアドバイス。
回答:
文字または数字以外のものと一致させるには、これを試すことができます。
[^a-zA-Z0-9]
そして置き換えるには:
var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
あなたは探している:
var yourVar = '1324567890abc§$)%';
yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' ');
これにより、英数字以外のすべての文字がスペースに置き換えられます。
末尾の「g」はすべての出現箇所を置き換えます。
az(小文字)とAZ(大文字)を指定する代わりに、大文字と小文字を区別するオプションを使用することもできます/[^a-z0-9]/gi
。
これは遅すぎる方法ですが、受け入れられた答えがないので、私が最も簡単なものだと思うものを提供したいと思います:\ D-すべての非数字文字に一致します。
var x = "123 235-25%";
x.replace(/\D/g, '');
xの結果: "12323525"
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressionsを参照してください
str.replace(/ [^ \ w] /);を実行してみてください それはあなたの文字列からすべての非アルファベットと数字を置き換えます!
編集1: str.replace(/[^\w]/g, ' ')
str.replace(/[^\w]/g, ' ')
です。/g
フラグを含めない場合、最初の出現のみが置き換えられます。また、置換文字列を定義しない場合は、ここでは空白スペース' '
となり、undefined
あらゆる場所で置換されます。最後に、アンダースコアは一致するため、置き換えられません\w
。この答えは完全に一致するわけではありません。
replaceAll
では\p{..}
はなく、プロパティエスケープは広く実装されていません。
あなたがstr = str.replace(/\W|_/g,'');
それを試したことがありますが、文字のない文字列を返します|
。パイプバーの後に特別な文字があるかどうかを指定して、それらをキャッチすることもできます。
var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, '');
戻ります str = 1324567890abcJohnDoe
または数字と文字を探し、空の文字列( "")に置き換えます:
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, '');
戻ります str = '§$)% #$@';
é
あなたがこれを試すことができるような文字、数字または文字以外のものを分音記号と一致させるには:
[^\wÀ-úÀ-ÿ]
そして置き換えるには:
var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');
分音記号をサポートするトップポストに触発されました
\w
これはWord文字用であり、[a-zA-Z0-9_]
(アンダースコアは単語文字と見なされることに注意してください)... と同じです。したがって、略記は次のようになりますstr.replace(/[^\w]/g, ' ')