我想使用 match()
来查找模式。
这是我想要匹配的字符串的示例:12/03/2013 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]|1\d|2[0-3]):(0[1-9]|[1-5]\d)$/);
关于javascript 正则表达式给出非法字符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18957011/