2017-03-24 23 views
0

区切り文字として大文字、小文字、数字、およびカンマのみを使用するように、一部のフィールドで条件を作成しようとしていました。プロジェクト名を持つことができる場で、私は何を私が見つけたことは、このでしたので、カンマを を必要としませんが、私のコメントで述べたように、私は大文字英数字(大文字と小文字)とカンマ区切り文字を使用できる正規表現

$var = $var.replace(/([[email protected]#$%^&*()-_+=`{}\[\]\|\\:;'<>,.\/? ])+/g, '-').replace(/^(-)+|(-)+$/g,''); 
+0

まあ、 'i'修飾子がありますので、それがあります。 – roberto06

+0

これは間違った解決策のように感じます。 'é'、'・ '、' '€ 'のような文字はどうでしょうか?極限的に制限したい場合は、ホワイトリスト '[^ a-zA-Z0-9]'を作成してください。 – Halcyon

答えて

0

を持つことができない、あなたはi修飾子を使用する必要があり、あなたの正規表現を大文字小文字を区別しないようにする。

あなたはまた、代わりに文字の多くを禁止する、あなたが欲しい文字のみ許可する必要があり、あなたの思考プロセスを逆にする必要があります。この例では

$var = $var.replace(/([^A-Z0-9,])+/gi, ''); 

を、I:

  • はあなたを置き換えます長い文字リスト[^A-Z0-9,]によって、任意の非英数字または非コンマ文字を意味します。
  • i修飾子
  • -から(空)への置換文字列を更新しました
  • 2番目の正規表現を削除しましたが、現在は無用です。

Try it online !

+0

ありがとうございます。 $ var = $ var.replace(/ [^ A-Za-z0-9、]/gi、 '');トリックをしました。ありがとうございました。 – Joseeph

+0

ようこそ。あなたが満足している場合は、他の人に役立つかもしれないので、この回答を(upvote and allow)(http://stackoverflow.com/help/someone-answers)お願いします。 – roberto06

関連する問題