JS 正则表达式匹配"0001-9999","001-999","01-99"

zhaowentao_bc 2012-12-02 07:43:09
如题,数字4位,3位,2位,不够补0, 这三组数值的正则表达式应该怎么写呢??
...全文
1072 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ironlee 2012-12-03
  • 打赏
  • 举报
回复
var rNum = /(\d{2,4})-(\d{2,4})/;
		var sToMatch1 = "0001-9999",sToMatch2 = "001-999",sToMatch3 = "01-99";
		var sToMatch = sToMatch3;
		if( rNum.test( sToMatch ) ){
			var sResult = sToMatch.replace( rNum , function(s){ return ("0000"+RegExp.$1).slice( -4 ) + "-" + ("0000"+RegExp.$2).slice(-4)} );
			alert( sResult );
		}
诺维斯基 2012-12-03
  • 打赏
  • 举报
回复

一个很笨的方法:
var s1 = "1";
            var reg = /^\d{1,4}$/g;
            s1 = s1.replace(reg, function (m) {
                if (m.length == 4) { return m; }
                else if (m.length == 3) { return "0" + m; }
                else if (m.length == 2) { return "00" + m; }
                else if (m.length == 1) { return "000" + m; }
            });
            alert(s1);
yibey 2012-12-03
  • 打赏
  • 举报
回复
引用 7 楼 zhaowentao_bc 的回复:
引用 6 楼 likeajin 的回复:都是四位数就 小小 回复的那个 /^\d{4}$/.test(value) 不对哦
哪里不对了,说出你的反例吧。外加把问题描述清楚
zhaowentao_bc 2012-12-03
  • 打赏
  • 举报
回复
引用 6 楼 likeajin 的回复:
都是四位数就 小小 回复的那个 /^\d{4}$/.test(value)
不对哦
likeajin 2012-12-02
  • 打赏
  • 举报
回复
都是四位数就 小小 回复的那个 /^\d{4}$/.test(value)
zhaowentao_bc 2012-12-02
  • 打赏
  • 举报
回复
引用 2 楼 likeajin 的回复:
1算做01呢还是001呢还是0001?

不好意思,可能是我描述的不清楚,
1到9999,都是四位位数不够补0,比如说0001,0002...,9999,1到999与1到99和第一组一样,我现在要验证输入框中是否填写的是这样规则的字符串,想用正则表达式来验证,正则表达式该怎么写呢?
zhaowentao_bc 2012-12-02
  • 打赏
  • 举报
回复
引用 1 楼 zzgzzg00 的回复:
^\d{4}$
不很明白你的意思

不好意思,可能是我描述的不清楚,
1到9999,都是四位位数不够补0,比如说0001,0002...,9999,1到999与1到99和第一组一样,我现在要验证输入框中是否填写的是这样规则的字符串,想用正则表达式来验证,正则表达式该怎么写呢?

chinaskysun 2012-12-02
  • 打赏
  • 举报
回复
不够补0,正则好像不行吧,反正我是不会,关注下。
likeajin 2012-12-02
  • 打赏
  • 举报
回复
1算做01呢还是001呢还是0001?
似梦飞花 2012-12-02
  • 打赏
  • 举报
回复
^\d{4}$ 不很明白你的意思

87,903

社区成员

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

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