js正则表达式问题,急,

IT_lau 2011-11-01 11:36:53
验证字符串: Q/GZZYXXZ.12.01.02111031-2011

必须以,Q/GZZ 开头,YXXZ可以是数字字符的组合,【.12.01.02】这个必须是数字机上符号点的形式(还可以加两位数字也就是12.01.02.02),后面两位11,可以是数字字符组合,在后面就是1031-2011,月,日 -年,


求答案!!!!!!!!!!!!!!!!!!!!!!

...全文
182 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小都不懂 2011-11-03
  • 打赏
  • 举报
回复
接分来了 呵呵
诺维斯基 2011-11-03
  • 打赏
  • 举报
回复
晕:
你把\s和\(和\)这三个后面的?去掉就可以了。
IT_lau 2011-11-03
  • 打赏
  • 举报
回复
好了 我改好了,再次表示感谢,没你我搞不定这个,呵呵[Quote=引用 14 楼 soonfei 的回复:]
引用 13 楼 soonfei 的回复:
JScript code


var str = "Q/GZZYXXZ .12.01.02.23(11)1031-2011";
var re = /Q\/GZZ[a-zA-Z0-9]{4}\s?(?:\.\d{2}){3,4}\(?[a-zA-Z0-9]{2}\)?[\d]{4}-[\d]{4}/;

if (re.test(str)) …………
[/Quote]
IT_lau 2011-11-03
  • 打赏
  • 举报
回复
还有就是,你那个式子没有括号的情况下【Q/GZZYXX Z.12.01.02.2311)1031-2011】也匹配成功了,应该是格式错误,[Quote=引用 14 楼 soonfei 的回复:]
引用 13 楼 soonfei 的回复:
JScript code


var str = "Q/GZZYXXZ .12.01.02.23(11)1031-2011";
var re = /Q\/GZZ[a-zA-Z0-9]{4}\s?(?:\.\d{2}){3,4}\(?[a-zA-Z0-9]{2}\)?[\d]{4}-[\d]{4}/;

if (re.test(str)) …………
[/Quote]
IT_lau 2011-11-03
  • 打赏
  • 举报
回复
哥们你好,只匹配 有空格的,没有空格说明格式错误,谢谢![Quote=引用 14 楼 soonfei 的回复:]
引用 13 楼 soonfei 的回复:
JScript code


var str = "Q/GZZYXXZ .12.01.02.23(11)1031-2011";
var re = /Q\/GZZ[a-zA-Z0-9]{4}\s?(?:\.\d{2}){3,4}\(?[a-zA-Z0-9]{2}\)?[\d]{4}-[\d]{4}/;

if (re.test(str)) …………
[/Quote]
诺维斯基 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 soonfei 的回复:]
JScript code


var str = "Q/GZZYXXZ .12.01.02.23(11)1031-2011";
var re = /Q\/GZZ[a-zA-Z0-9]{4}\s?(?:\.\d{2}){3,4}\(?[a-zA-Z0-9]{2}\)?[\d]{4}-[\d]{4}/;

if (re.test(str)) ……
[/Quote]
看错了一个位置。嘿嘿
用这个
var str = "Q/GZZYXXZ.12.01.02.23(11)1031-2011";
var re = /Q\/GZZ[a-zA-Z0-9]{3}\s?[a-zA-Z0-9](?:\.\d{2}){3,4}\(?[a-zA-Z0-9]{2}\)?[\d]{4}-[\d]{4}/;

if (re.test(str)) {
alert("成功");
}
else {
alert("失败");
}
诺维斯基 2011-11-03
  • 打赏
  • 举报
回复

var str = "Q/GZZYXXZ .12.01.02.23(11)1031-2011";
var re = /Q\/GZZ[a-zA-Z0-9]{4}\s?(?:\.\d{2}){3,4}\(?[a-zA-Z0-9]{2}\)?[\d]{4}-[\d]{4}/;

if (re.test(str)) {
alert("成功");
}
else {
alert("失败");
}
//这次,不论有没有空格和括号,都可以
IT_lau 2011-11-03
  • 打赏
  • 举报
回复
现在格式变了,中间有括号,Q/GZZYXX Z.01.01.02(BG)1031-2011 xx后面是一个空格,怎么匹配?????[Quote=引用 10 楼 soonfei 的回复:]
引用 8 楼 liujun12355 的回复:
大神为什么不用。test(),我只需要返回是否匹配可以了,这个怎么返回整个字符串??

引用 3 楼 soonfei 的回复:
引用 1 楼 soonfei 的回复:
C# code

string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/……
[/Quote]
诺维斯基 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liujun12355 的回复:]
,【.12.01.02】 这个可能是三层,也可能是四层,【.12.01.02.01】

引用 3 楼 soonfei 的回复:
引用 1 楼 soonfei 的回复:
C# code

string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/GZZ[a-zA-Z0-9]{4}(\.\d{2})……
[/Quote]
可以的
IT_lau 2011-11-01
  • 打赏
  • 举报
回复
,【.12.01.02】 这个可能是三层,也可能是四层,【.12.01.02.01】[Quote=引用 3 楼 soonfei 的回复:]
引用 1 楼 soonfei 的回复:
C# code

string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/GZZ[a-zA-Z0-9]{4}(\.\d{2}){3}(\.[\d]{2})?[a-zA-Z0-9]{2}[\d]{4}-[\d]{4}");

foreach (Match m……
[/Quote]
IT_lau 2011-11-01
  • 打赏
  • 举报
回复
jsp,里面用js[Quote=引用 2 楼 wangg_cn 的回复:]
你用什么语言开发?
[/Quote]
诺维斯基 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 soonfei 的回复:]
C# code

string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/GZZ[a-zA-Z0-9]{4}(\.\d{2}){3}(\.[\d]{2})?[a-zA-Z0-9]{2}[\d]{4}-[\d]{4}");

foreach (Match m in r……
[/Quote]

js


var str = "Q/GZZYXXZ.12.01.02111031-2011";
var re = /Q\/GZZ[a-zA-Z0-9]{4}(?:\.\d{2}){3}(?:\.[\d]{2})?[a-zA-Z0-9]{2}[\d]{4}-[\d]{4}/;
var str1 = re.exec(str);
alert(str1);
Glistar 2011-11-01
  • 打赏
  • 举报
回复
你用什么语言开发?
诺维斯基 2011-11-01
  • 打赏
  • 举报
回复
string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/GZZ[a-zA-Z0-9]{4}(\.\d{2}){3}(\.[\d]{2})?[a-zA-Z0-9]{2}[\d]{4}-[\d]{4}");

foreach (Match m in reg.Matches(str))
{
Response.Write(m.Value);
}
IT_lau 2011-11-01
  • 打赏
  • 举报
回复
稍后给分,,,谢谢各位,[Quote=引用 10 楼 soonfei 的回复:]
引用 8 楼 liujun12355 的回复:
大神为什么不用。test(),我只需要返回是否匹配就可以了,这个怎么返回整个字符串??

引用 3 楼 soonfei 的回复:
引用 1 楼 soonfei 的回复:
C# code

string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/……
[/Quote]
诺维斯基 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 liujun12355 的回复:]
大神为什么不用。test(),我只需要返回是否匹配就可以了,这个怎么返回整个字符串??

引用 3 楼 soonfei 的回复:
引用 1 楼 soonfei 的回复:
C# code

string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/GZZ[a-zA-Z0-9]{4}(\.\d{2}……
[/Quote]

var str = "Q/GZZYXXZ.12.01.02.23111031-2011";
var re = /Q\/GZZ[a-zA-Z0-9]{4}(?:\.\d{2}){3,4}[a-zA-Z0-9]{2}[\d]{4}-[\d]{4}/;

if (re.test(str)) {
alert("成功");
}
else {
alert("失败");
}
IT_lau 2011-11-01
  • 打赏
  • 举报
回复
var str = "Q/GZZYXXZ.12.01.02111031-2011";
var re = /^Q\/GZZ[a-zA-Z0-9]{4}(?:\.\d{2}){3,4}(?:\.[\d]{2})?[a-zA-Z0-9]{2}[\d]{4}-[\d]{4}$/;
var str1 =re.exec(str);
alert(str1==null);
应该要这么写吧,
[Quote=引用 6 楼 soonfei 的回复:]
引用 5 楼 liujun12355 的回复:
,【.12.01.02】 这个可能是三层,也可能是四层,【.12.01.02.01】

引用 3 楼 soonfei 的回复:
引用 1 楼 soonfei 的回复:
C# code

string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/G……
[/Quote]
IT_lau 2011-11-01
  • 打赏
  • 举报
回复
大神为什么不用。test(),我只需要返回是否匹配就可以了,这个怎么返回整个字符串??[Quote=引用 3 楼 soonfei 的回复:]
引用 1 楼 soonfei 的回复:
C# code

string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/GZZ[a-zA-Z0-9]{4}(\.\d{2}){3}(\.[\d]{2})?[a-zA-Z0-9]{2}[\d]{4}-[\d]{4}");

foreach (Match m……
[/Quote]
Left_you 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liujun12355 的回复:]

,【.12.01.02】 这个可能是三层,也可能是四层,【.12.01.02.01】引用 3 楼 soonfei 的回复:
引用 1 楼 soonfei 的回复:
C# code

string str = "Q/GZZYXXZ.12.01.02111031-2011";

Regex reg = new Regex(@"Q/GZZ[a-zA-Z0-9]{4}(\.\d{2}){3}……
[/Quote]

这部分写成这样就行了:(\.\d{2}){3,4}

87,989

社区成员

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

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