var str = 'aaa:1,5|bbb:2,6|ccc:1,3';
var reg = /[a-zA-Z]+:\d+,\d+(?:\||$)/g;
if(reg.test(str))
    alert("ok");
else
    alert("error");

解决方案 »

  1.   


    //1楼的正则改一下
    //var reg = /[a-zA-Z]+:\d+,\d+(?:\||$)/g;
    var reg = /^[a-zA-Z]+:\d+,\d+(?:\|[a-zA-Z]+:\d+,\d+)*$/g;
      

  2.   

    var str = 'aAa:1,5|bbb:2,6|ccc:1,3';
    var reg = /^[a-z]+:\d+,\d+(?:\|[a-z]+:\d+,\d+)*$/gi;
    if(reg.test(str))
        alert("ok");
    else
        alert("error");
    分两部分匹配
    aAa:1,5|bbb:2,6|ccc:1,3
      

  3.   

    用了楼上的大虾的方法出现以下错误:
    Microsoft JScript 运行时错误: 'txtUSNSubStr' 为空或不是对象<SCRIPT TYPE="text/javascript">
    function FormCheck() {
     var str = 'aAa:1,5|bbb:2,6|ccc:1,3';
     var reg = /^[a-zA-Z]+:\d+,\d+(?:\|[a-zA-Z]+:\d+,\d+)*$/gi;
            if((!document.all.txtUSNSubStr.value=="")&&(!reg.txtUSNSubStr.value(str))){
                alert("The USN Substring's format isn't right!please follow the example!");
            document.all.txtUSNSubStr.focus();
                return(false);}
    }
    </SCRIPT>
    请问问题出在了那里???
      

  4.   

    var str = 'aAa:1,5|bbb:2,6|ccc:1,3';
    var str1 = str.split("|");str = str1.join("|");
      

  5.   

    在不考虑空格的情况下可以运行
    var oReg=/^[a-z]+:\d+(,\d+)*(\|[a-z]+:\d+(,\d+)*)*$/;
    var s="aaa:1|bbb:1,2,3|ccc:1,2,2,4";
    alert(oReg.test(s));