-1

我在 Expresso 的帮助下编写了一个正则表达式。它与我的所有示例匹配,因此我将其复制到我的 JavaScript 代码中。它与我的示例之一不匹配,但为什么呢?

正则表达式:

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

应该匹配:

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

在 JavaScript 中,10:00-12:00 不适用于所有浏览器,如 IE9、Chrome、Firefox。有任何想法吗?

更新(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 代码中时是否转义了 \'s?

将其嵌入为字符串时,您最终会编写:

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