日期:2014-05-16  浏览次数:20395 次

一个简单的正则表达式,不解,请教
var pattern = /^([1-9]\d*)|0$/;
pattern.test("123ds");

为什么这样返回的是true?这个不应该是个正整数吗?

------解决方案--------------------
var pattern = /^(([1-9]\d*)|0)$/;这样试试 前几天看他们好像在讨论这个问题 你查查吧 运算符优先级的问题 貌似是
------解决方案--------------------
JScript code
 var arr="123,1,123as,0,01,10,abc".split(',');
   for(var i=0;i<arr.length;i++){
    document.write(arr[i] + ":" + /^[1-9]\d*$|^0$/.test(arr[i])+"\r\n");
   }