-1

Expresso を使用して正規表現を作成しました。すべてのサンプルに一致するので、JavaScript コードにコピーしました。私の例の1つと一致しませんが、なぜですか?

正規表現:

^(\d{1,2}):?(\d\d)?\s*-\s*(\d{1,2}):?(\d\d)?$

一致する必要があります:

10-12
10:00-12:00
1000-1200

JavaScript では、IE9、Chrome、Firefox などのすべてのブラウザで 10:00-12:00 が機能しません。何か案は?

更新 (JavaScript コード): input.match(/^(\d{1,2}):?(\d\d)?\s*-\s*(\d{1,2}):?(\ d\d)?$/);

更新 (解決済み): いくつかの事前フィルタリングが原因で、コードに到達しませんでした。そのために残念!

4

2 に答える 2

1

現在 Chrome でテストしており、動作しているようです。

var exp = /^(\d{1,2}):?(\d\d)?\s*-\s*(\d{1,2}):?(\d\d)?$/;
exp.test('10-12') // true
exp.test('10:00-12:00') // true
exp.test('1000-1200') // true
exp.test('1000-12005') // false
于 2012-05-04T09:05:45.290 に答える
0

Javascript コードに式を配置するときに \ をエスケープしましたか?

それを文字列として埋め込むと、次のように書くことになります:

  var expression = "^(\\d{1,2}):?(\\d\\d)?\\s* etc
于 2012-05-04T09:03:13.420 に答える