2010-11-30 14 views
2

私は正規表現とJavaScriptに新たなんだと、誰もが正規表現は、入力フィールドは、フォーマットの次のタイプに含まれるか否かを検出するだろう知っていた場合、私は思っていた:コンマで区切られた英数字タグの場合は、

  • 少なくとも一つの英数字のタグをスペースを含めることができます(例えば、 "Test Tag"では "Test Tag"ではなく "Test @ Tag")

  • 各タグは単一のカンマで区切り、 (例えば「車、自動車、タイガーサボテン、ベッド」)

私が何を意味するかの例としては、これらが有効タグになり、これです:

boy,man,girl,woman,tyrannosaurus rex,lion 

そして、これらが無効だろうタグ:

タグと無効な文字の間にスペースがあるためです。

また、制限を課すためにタグをどのように数えますか?

説明のために編集されました!

+0

引用符は文字列の一部ですか?タグにはどのような文字が使用できますか?空白/空白のみのタグは許可されていますか? – PleaseStand

+0

申し訳ありませんが、私はOPをより正確に編集しました。 – ThunderLegs

+0

「英数字」には通常スペースは含まれませんが、例にはスペースを含む「ロングタグ」が含まれています。 –

答えて

2

(?:([\w\s]+)(?:,\s*))*は、コンマで区切られた任意の数のタグを取得します。

(?:([\w\s]+)(?:,\s*)){n}は、n個のタグに一致します(nは整数)。

(?:([\w\s]+)(?:,\s*)){0,n}は、0からnタグ(nは整数)に一致します。

タグをカウントするには、キャプチャされたグループの数を確認する必要があります。

+1

タグ間にスペースを入れたくない場合は、 "(?:、\ s *)"を "、"に変更して正規表現をより読みやすくすることができます。 – Andrew

+0

あなたの応答に感謝します。私は上記の例を使ってあなたの正規表現を試しましたが、私はそれを検証することができませんでした。 – ThunderLegs

+2

私が投稿した方法では、最後のタグはリストに含まれません(タグの後にカンマが続く)。最後のタグを含めるには、 (?:([\ w \ s] +)、)*([\ w \ s] +) – Andrew