var reg=new RegExp("^[^\w\u4e00-\u9fa5]{2,4}$");
alert(reg.test(nvalue));
当输入的为“张三” 时,alert显示的值是false 为什么匹配不上?
[^\w\u4e00-\u9fa5],去掉[里面的^,你加^就是排除这些字符了
var reg = new RegExp("^[\w\u4e00-\u9fa5]{2,4}$");
alert(reg.test("张三"));
alert(/^[\w\u4e00-\u9fa5]{2,4}$/.test('张三'));
我匹配两2到4个汉字的正则表达式应该怎么写呢
var reg = /^[\u4e00-\u9fa5]{2,4}$/;
是正解
如果你需要也可以匹配字符的话,可以用以下
var reg = /^[\w\u4e00-\u9fa5]{2,4}$/
如果你要匹配
的话,那么正则里就不要加 ^$
,对应的正则应该是 /[\w\u4e00-\u9fa5]{2,4}/
反之验证的话,是 /^[\w\u4e00-\u9fa5]{2,4}$/
如果你要匹配2到4个汉字的话,那么正则里就不要加 ^$ ,对应的正则应该是 /[\u4e00-\u9fa5]{2,4}/
反之验证的话,是 /^[\u4e00-\u9fa5]{2,4}$/
多加了一个^,它变成反的含义了