2017-11-04 15 views
0

スペースを含む文字列の英数字以外の文字を置き換えようとしています。私は動作する解決策を見つけましたが、それはハッキリと感じます。私はこれを達成するために2つの別々の置換関数を必要とすべきではありませんが、それらを適切にマージする方法を理解することはできません。オンラインで見つかったドキュメントのどれもこれに対処していません。;複数の置換

str.replace(/\s/g,"").replace(/[^0-9a-zA-Z]/g,"").toLowerCase(); 

はまた、^文字は、このコードでは、「これではない」を表すのでしょうか?私はこれを非英数字以外の文字を繰り返し削除する適切な方法としてこれを見つけましたが、これがなぜ機能するのかを完全には説明できません。私は、^が進行中の文字を無視することを意味すると推測していますが、それはちょうど推測です。

+0

はい角括弧内の^は意味しません。行の先頭にある^とは異なり、 "行の始まり" :-( おそらく "正規表現のチュートリアル"は検索したいものですか? –

答えて

0

最初の置換を省略して、この文字を保持するための文字リストから許可された空白を削除することができます。

console.log(' fßO oä '.replace(/[^0-9a-zA-Z]/g,"").toLowerCase());

1

あなたはこの1つは動作するはずの単語または数字の文字

+0

これは私が探していたものです。私が '?'で置き換えたいものを分けるために –

0

ないすべての文字に置き換える必要がありRegExp/[^a-z\d]+|[\s]+/ig使用することができます:それはあまりにも_文字を続けるだろうが、str.replace(/\W/g, "")を。

参考:https://www.w3schools.com/jsref/jsref_regexp_wordchar_non.asp

は、この情報がお役に立てば幸い!

関連する問題