验证输入替20个以内中文字符的正则表达

验证输入为20个以内中文字符的正则表达
如题,请求帮忙,我自己也试了一个/^[\u4e00-\u9fa5]{,20}$/。这个中文能查出来,但不知道为什么像:http://www.baidu.com这个地址也会报错。
------解决方案--------------------
var str = "你输入的字符串,中英文混合";
var arr= str.match(/[\u4e00-\u9fa5]/g);
var len = arr == null ? 0 : arr.length;
len的值就是中文的个数;