24時間以内に時刻形式を一致させるための正規表現を持っています 受け入れ可能なフォーマットは1:00、01:00、100、0100などです。 23時間JavaScriptの正規表現は、オンラインテストサイトでは一致しますが、コードでは間違っています
しかし、また、私は特別なケースを持っている - 私は受け入れるように可用性を必要とする1:00 *、01:00 *または100 * DSTのための遷移時間
ので、それは基本的に2つの正規表現の式の連結だ
これは正規表現の文字列です ^(0?1:?[0-5][0-9]\*)|((0[0-9]|1[0-9]|2[0-3]|[0-9]):?[0-5][0-9])$
後に任意のシンボルのための偽の一致を返し
var r = new RegExp('^(0?1:?[0-5][0-9]\*)|((0[0-9]|1[0-9]|2[0-3]|[0-9]):?[0-5][0-9])$');
var b1 = r.test("1:00"); // true
var b2 = r.test("1:00*"); // true
var b3 = r.test("1:00&"); // true - wrong
var b4 = r.test("1:00#"); // true - wrong
コードで
1:00 - true
1:00* - true
1:00& - false
2:00 - true
- 表現
^(0?1:?[0-5][0-9]\*)$|^((0[0-9]|1[0-9]|2[0-3]|[0-9]):?[0-5][0-9])$
オンラインテスト:コード内
1:00 - true
1:00* - true
1:00& - false
2:00 - true
:それがあるべきよう
var r = new RegExp('^(0?1:?[0-5][0-9]\*)$|^((0[0-9]|1[0-9]|2[0-3]|[0-9]):?[0-5][0-9])$');
var b1 = r.test("1:00"); // true
var b2 = r.test("1:00*"); // false - wrong
var b3 = r.test("1:00&"); // false
var b4 = r.test("1:00#"); // false
だから、両方のケースでは、オンラインテストは動作しますが、コードではそうではありません。 何が問題なのですか?
Extjs 4.2.3では、テキストフィールドの検証にこのフォームを使用できないため、 '/ ^(0?1:?[0-5] [0-9] *)$ form'は使用できません。私はこのような工事でフォームフィールド検証のためにそれを使用します。
regex: new RegExp('^(0?1:?[0-5][0-9]\*)$|((0[0-9]|1[0-9]|2[0-3]|[0-9]):?[0-5][0-9])$'),
regexText: 'Not a valid time. Accepted formats: HMM, H:MM, HHMM, HH:MM, 1:MM*, 01:MM*, 1MM*'