mysql时间戳格式的Javascript regex不起作用
Javascript regex for mysql time stamp format not working
我需要识别字符串是否具有正确的javascript mysql DB时间戳格式。我写了这个正则表达式:
var regex = /([0..9]{4})-([0..9]{2})-([0..9]{2}) ([0..9]{2}):([0..9]{2}):([0..9]{2})/;
但是,当与字符串一起使用时
var s = "2014-09-08 08:02:17";
if (regex.test){
console.log("OK");
}
它不起作用。有人能告诉我我做错了什么吗?
此日期格式的正则表达式为:('d{4})-('d{2})-('d{2}) ('d{2}):('d{2}):('d{2})
这里是JsFiddle:https://jsfiddle.net/2vh23Lmt/
var string = "2014-09-08 08:02:17";
var re = /('d{4})-('d{2})-('d{2}) ('d{2}):('d{2}):('d{2})/g;
if (re.test(string)) {
console.log("Valid");
} else {
console.log("Invalid");
}
您的方法中有两个错误:
- a) 不正确的字符类
[0..9]
(应为[0-9]
) - b)
regex.test
函数调用中未指定测试字符串
var regex = /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/g;
var s = "2014-09-08 08:02:17";
if (regex.test(s)){
console.log("OK");
}
添加锚点并用-
替换..
。因为字符类中的-
(不是在第一个或最后一个)应该起到范围量词的作用。
var regex = /^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})$/;
还有锚,是的,这是必须的。否则,您的正则表达式应该与此54632014-09-08 08:02:173563
匹配。锚点将进行完全匹配,如果不想进行完全匹配的话,可以用'b
替换锚点。
相关文章:
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- mysql时间戳格式的Javascript regex不起作用
- 为什么javascript替换方法(没有regex)在angularjs表达式中不起作用来删除 
- Regex选择不起作用
- Html.TextBoxFor regex 不起作用
- Javascript Regex replace在IE10中不起作用
- Regex表达式不起作用
- 为什么这个简单的JavaScript密码regex不起作用
- regex手机验证不起作用-javascript
- Nodejs的Regex全局匹配不起作用
- Regex验证(RegularExpressionValidator和Javascript)不起作用
- regex分割在Javascript中不起作用的数字和非数字组
- 字符串过长时Regex匹配不起作用
- RegEx在Javascript中不起作用:SCRIPT5018:意外的限定符
- RegEx完全匹配^abc$dons'不起作用
- JQuery验证Regex规则不起作用
- JavaScript RegEx字符串结尾不起作用
- 具有负面前瞻性的Regex不起作用
- String.replace()不起作用,即使在其他语言中使用相同的regex
- 匹配URL的Regex不起作用