0

文字列に次の方法で許可された文字のみが含まれている場合に一致するJava Script正規表現を作成しようとしています-

  1. 文字列には、0、1、x、またはコンマ (,) のみが含まれます。
  2. 各数字 (0、1、または「x」) はコンマ (,) で区切る必要があります。
  3. 少なくとも 1 つのカンマ区切りの値が必要です (つまり、「0,1」または「0,x,1」)。
  4. カンマは常に数字または「x」で囲む必要があります (つまり、「,」または「,0」は無効です)。

この条件の正規表現を書くことは可能ですか? Javaスクリプトの文字列分割を使用してそれを行うことができますが、それは私にはエレガントに見えません. 誰かが上記の条件の正規表現を考え出すのを手伝ってくれることを願っています。

4

1 に答える 1

3

あなたが試したことを示すべきであるという@SomeKittensに同意しますが、少なくともかなり詳細な仕様を提供しました。私の理解に基づいて、次のようなものを使用できます。

var isValid = /^(?:[01x],)+[01x]$/.test(str);

次のいずれかに一致します。

  • 0,1
  • 0,1,1
  • 0,x,0,0

そして、これらのどれも:

  • 0
  • 0,
  • 0,1,
  • ,1
  • 0,,1
  • 0,X (大文字の X)

小文字に加えて大文字の X の一致を許可する場合は、大文字と小文字を/i区別しない一致の正規表現にフラグを追加します。

于 2012-07-17T16:39:19.500 に答える