我的正则表达式为什么老是无法正确判断,急

a33b33 2003-09-20 11:09:30
function check(){
var reg = /\d{4}[-][0-1]?\d[-][0-2]?\d/;
var reg = new RegExp("[0-9]{4}[-][0-1]?[0-9][-][0-2]?[0-9]");
var txt = "19991-1-31";
if (!reg.test(txt))
{
alert ("错误");
return ;
}
alert ("正确");
}

txt = 19999-1-1
txt = 1999-1-51
txt = "1999231-1-31"
全都报告 正确
[0-9] 换成 \d 也一样
为什么呀?? 5555555..........
...全文
72 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzs1013 2003-09-25
  • 打赏
  • 举报
回复
<script>
function check(txt){
var reg = /^[0-9]{4}-[0-1]?[0-9]-[0-2]?[0-9]$/

if (!reg.test(txt)){
alert ("错误");
return ;
}else{
alert ("正确");
}
}
check("1991-21-31")
</script>
purexu 2003-09-25
  • 打赏
  • 举报
回复
function check(){
var reg = /^[\d]{4}[-][0-1]?[\d][-][0-2]?[\d]$/;
var txt = "19991-1-31";
if (!reg.test(txt))
{
alert ("错误");
return ;
}
alert ("正确");
}
a33b33 2003-09-25
  • 打赏
  • 举报
回复
to : : purexu(南极之星)

不行呀 用 1991-1-31 或 1991-21-31 都报告正确
3 的位置 只能出现 0-2 呀 如果我写的正则是正确的

Brookes 2003-09-20
  • 打赏
  • 举报
回复
function check(){
var reg = /\d{4}[-][0-1]?\d[-][0-2]?\d/;
var reg = new RegExp("^[0-9]{4}[-][0-1]?[0-9][-][0-2]?[0-9]");
var txt = "19991-1-31";
if (!reg.test(txt))
{
alert ("错误");
return ;
}
alert ("正确");
}
liusong1234 2003-09-20
  • 打赏
  • 举报
回复
前面加^表匹配字串表头
后面加$表匹配字串结束
purexu 2003-09-20
  • 打赏
  • 举报
回复
function check(){
var reg = /^[\d]{4}[-][0-1]?[\d]+[-][0-2]?[\d]+$/;
var txt = "19991-1-31";
if (!reg.test(txt))
{
alert ("错误");
return ;
}
alert ("正确");
}
a33b33 2003-09-20
  • 打赏
  • 举报
回复
txt = "1999-1-41" 时 还是说 正确

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧