2

正規表現には非常に小さいが非常に厄介な問題があります。たとえば、9桁の電話番号を含むカンマ区切りリストの正規表現を見つけたいと思います:

パス : 123456789,123456789

合格しない: 123456789,123456789,

これまでのところ、私はこのようなものを持っています:/^\d{9}+(,\d{9}\+)\*$/もちろん、このツールhttp://regex.larsolavtorvik.comでは機能しますが、javascript では機能せず、よく知られているエラーだと思います (Javascript の人々):

Invalid regular expression: /^\d{9}+(,\d{9}\+)\*$/: Nothing to repeat 

バックスラッシュを追加すると、次のようになります/^\d{9}\+(,\d{9}\+)\*$/。もちろん、これも機能しません。

4

1 に答える 1

3

でエスケープ*しています。それが問題です..+\

*先行する char 0 と何度も一致することを意味します

+先行する char に 1 回以上一致することを意味します

{9}は、前の文字と 9 回一致することを意味します。したがって、+その後に使用する必要はありません。

正規表現は

/^\d{9}(,\d{9})*$/
于 2013-01-23T18:01:15.903 に答える