有一个东西的规格为:1件*20桶*30包*123.45公斤,我想要的结果是1、20、30、123.45,但是我用这个/(\d+)[^\d]*$/来做校验,只能得到1、20、30、45,请各位大虾棒棒忙,谢谢!
var strArray = str.split("*");
for(var i=0;i<strArray.length;i++){
   charVar=strArray[i];
   if(t=charVar.match(/(\d+)[^\d]*$/)){
     alert(t[1]);
   }
}

解决方案 »

  1.   

    稍微测试了下 如下var Str="1件*20桶*30包*123.45";
    var Result=Str.replace(/[^\d\.\*]+/g,"");
    var StrArray=Result.split("*");
    alert(StrArray);但这样的一个正则并不严谨,如果非需要信息中包含数字和.符号 则需要重新思考,但按你目前的要求,可以暂时这样实现.
      

  2.   

    var str="1件*20桶*30包*123.45公斤";
    var res=str.match(/\d+(\.\d+)?/g);
    alert(res);
      

  3.   

    var str="1件*20桶*30包*123.45公斤";
    var res=str.match(/\d+(?:\.\d+)?/g);
    alert(res);
      

  4.   


            var s = "1件*20桶*30包*123.45";
            var p = /\d+(\.\d{1,2})?/g;
            var i;
            while ((i = p.exec(s)) != null) {
                document.write(i[0]);
                document.write("<br />");
            }
      

  5.   

    <script>
    var Str="1件*20桶*30包*123.45";
    var Result=Str.split(/[^\d\.]+/g);
    alert(Result);
    </script>