2016-09-01 5 views
2

基本的に私は(/^[[email protected]#\(\.)]$/)以外のすべての文字を正規表現を使って制限したいString restrict = "Hello+Hi";を持っています。regexを使って文字制限をJavaで実装する方法は?

javascriptこれはやっている方法です field.value.match(/^[[email protected]#$%&^*()-_=.<>?)\(\)]+$/) これはすべての文字をかっこで囲みます。

は、私は私の文字列が唯一の誰かがどのようにJavaでこれを行う方法を教えている場合、私は本当に感謝し(/^[[email protected]#\(\.)]$/)

含まれるようにします。

+0

は個人的に、私はあなたがあまり意味を作っているとは思いません。あなたの想定された要件は、あなたの例のJavaScriptが表示されるものと一致しないようです... – musefan

+0

私の質問が更新されました。新しい行を読んでください。 – jacky

+0

可能性をさらに広げたい場合は、java.util.Regexを使用できます。さらに多くの情報があります。https://docs.oracle.com/javase/7/docs/api/java/util/regex/package-summary.html –

答えて

3

Stringとパターンが一致するString.matchesを使用できます。

は、+が単語文字ではないため、falseを返します。

混乱を避けるために、パターンの+は、1 +文字の繰り返しのための貪欲な量指定子です。

p{Alpha}はアルファベット文字を表し、ダブルエスケープが必要です。

docs hereを参照してください。

編集し、あなたの要件を編集したので

は、単に次のようにカスタムクラスを使用し、プラス数量詞:

"Hello+World".matches("[[email protected]#\\().]+") // returns false because of the + 
+1

Nit: '\ w'には' _'と '0 -9'なので、OPの制限と全く同じではありません。 –

+1

@AndyTurnerああありがとう。修正する。 – Mena

+0

もうちょっと私の質問を読むことができますか? – jacky

関連する問題