2017-04-07 12 views
-3

私はアドレスフィールドの最初の行を編集できるはずですが、1つのカンマしか使えないようにする必要があります。文字列Regexは数字と数字を1つのカンマでしか受け入れることはできません

JavaScriptでこれを行う方法があるのだろうかと思っていましたか?

は、これまで私が試してみました:

^[a-zA-Z0-9\&\-\,\.\/\'_ ]+$ 

しかし、この正規表現は私が複数のカンマを入力することができます。

だから私は、正規表現は、ユーザーがこれを行うことができるようにしたい:

21、タシュ・プレイスN13 2IJ

またはこの: 、タシュ・プレイス21 N13 2IJ

ではなく、この:

21、タシュプレイス、N13、2IJ

すべてのヘルプは

をいただければ幸いです0
+3

ええ、おそらく。あなた自身で何か試しましたか? –

+0

試しましたか? –

+0

はい、あります... – revo

答えて

1

あなたは

​​

を使用することができregex demoを参照してください。ここ

  • ^ - は、文字列の先頭と一致
  • [-a-zA-Z0-9&.\/'_ ]* - 次にマッチ0+文字、数字又は記号-./'_
  • (?:,[-a-zA-Z0-9&.\/'_ ]*)? - 任意の配列(1回の又は0の出現) of:
    • , - カンマ(したがって、1つだけです)
    • [-a-zA-Z0-9&.\/'_ ]* - その後、試合0+文字、数字や記号-./'_
  • $ - 文字列の末尾。

もう一つの方法は、あなたの正規表現に(?!(?:[^,]*,){2})否定先読みを追加することです:

/^(?!(?:[^,]*,){2})[-a-zA-Z0-9&.\/',_ ]+$/ 
    ^^^^^^^^^^^^^^^^^ 

は以外の文字0+の2つの系列がある場合にanother regex demo

(?!(?:[^,]*,){2})先読みはマッチに失敗します参照してください。文字列に,、次に,があります。

+1

これは機能しました。ありがとう – Cory

関連する問題