正则表达式{n,m}的匹配,求解释

时间:2022-11-10 05:58:21
var pattern=/\d{2,4}/;//2位到4位数字
pattern.test("00999");//IE7中是true


怎么会这样?
难道是匹配了前面4个字符,发现成功就返回true了?

7 个解决方案

#1


或者说是前面2个字符

#2


当然是true了,这样写表示任意位置匹配到2到4个数字就成功

加上首尾限定才表示整个字符串为2到4位数字
var pattern=/^\d{2,4}$/;

#3


引用 2 楼 lxcnn 的回复:
当然是true了,这样写表示任意位置匹配到2到4个数字就成功

加上首尾限定才表示整个字符串为2到4位数字
var pattern=/^\d{2,4}$/;

++

#4


引用楼主 wangshiwei1105 的回复:
JScript code
var pattern=/\d{2,4}/;//2位到4位数字
pattern.test("00999");//IE7中是true


怎么会这样?
难道是匹配了前面4个字符,发现成功就返回true了?

格式验证 要这样写:var pattern=/^\d{2,4}$/;
如果是数据匹配 才应该你那样写
从你的代码来看  你应该是属于第一种

#5


开始 ^ 结束 $

#6


引用 4 楼 q107770540 的回复:
引用楼主 wangshiwei1105 的回复:
JScript code
var pattern=/\d{2,4}/;//2位到4位数字
pattern.test("00999");//IE7中是true


怎么会这样?
难道是匹配了前面4个字符,发现成功就返回true了?

格式验证 要这样写:var pattern=/^\d{2,4}$/;
如果是数据匹配 才应该你那……

+111

#7


Thanks!
结贴.

#1


或者说是前面2个字符

#2


当然是true了,这样写表示任意位置匹配到2到4个数字就成功

加上首尾限定才表示整个字符串为2到4位数字
var pattern=/^\d{2,4}$/;

#3


引用 2 楼 lxcnn 的回复:
当然是true了,这样写表示任意位置匹配到2到4个数字就成功

加上首尾限定才表示整个字符串为2到4位数字
var pattern=/^\d{2,4}$/;

++

#4


引用楼主 wangshiwei1105 的回复:
JScript code
var pattern=/\d{2,4}/;//2位到4位数字
pattern.test("00999");//IE7中是true


怎么会这样?
难道是匹配了前面4个字符,发现成功就返回true了?

格式验证 要这样写:var pattern=/^\d{2,4}$/;
如果是数据匹配 才应该你那样写
从你的代码来看  你应该是属于第一种

#5


开始 ^ 结束 $

#6


引用 4 楼 q107770540 的回复:
引用楼主 wangshiwei1105 的回复:
JScript code
var pattern=/\d{2,4}/;//2位到4位数字
pattern.test("00999");//IE7中是true


怎么会这样?
难道是匹配了前面4个字符,发现成功就返回true了?

格式验证 要这样写:var pattern=/^\d{2,4}$/;
如果是数据匹配 才应该你那……

+111

#7


Thanks!
结贴.