JavaScript正则表达式给出非法字符的错误



我想用match()来寻找模式。下面是我要匹配的字符串的示例: 2013-03-12 11:15

使用了一些在线工具,我让它适用于具有这种模式的工具:

sData.match((0[1-9]|[12][d]|3[0-2])/(0[1-9]|1[0-2])/[d]{4} (0[1-9]|1[d]|2[0-3]):(0[1-9]|[1-5][d])$)

但是,一旦我在javascript代码中使用它,我就会收到非法字符的错误,但我不知道哪些字符是非法的,有人可以帮忙吗?

如果它有帮助,这是针对数据表插件的自定义排序列,但我确定这不是问题的一部分。

这是带有工作正则表达式的在线工具:http://rubular.com/r/PR4l6T8AQi

你只需要为正则表达式添加分隔符:

sData.match(/(0[1-9]|[12][d]|3[0-2])/(0[1-9]|1[0-2])/[d]{4} (0[1-9]|1[d]|2[0-3]):(0[1-9]|[1-5][d])$/);
            ^                                                                                            ^

这应该:)

此外,您可以删除一些字符类,例如[d]可以编写为d好吧:

sData.match(/(0[1-9]|[12]d|3[0-2])/(0[1-9]|1[0-2])/d{4} (0[1-9]|1d|2[0-3]):(0[1-9]|[1-5]d)$/);

文字正则表达式应该以/开头和结尾

则表达式必须以/开头并以/结尾

 sData.match(/(0[1-9]|[12][d]|3[0-2])/(0[1-9]|1[0-2])/[d]{4} (0[1-9]|1[d]|2[0-3]):(0[1-9]|[1-5][d])$/)

最新更新