求教:哪位高手能给讲下这个正则表达式的意思 /^([0-9]{9}|[0-9]{14})$/ ,感谢指教!

解决方案 »

  1.   

    1.^与$分别表示的是正则表达式的开始和结束,实际上是不匹配任何东西的,仅仅起的一个界线作用。
    2.()用括号,主要有两个作用,一个是把括号的内容看成一个整体,实际上这个功能也在一定程度上帮助了 另一个作用的实现,就是反向引用,比如([0-9])\\1,这个前面括号中匹配的是0到9的任何一个数字,后面就是反响引用前面的,就相当于([0-9])([0-9]),它可以匹配任意两位数
    3.{}的作用,举例说一下吧  如{n}:    n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。{n,}:    n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。{n,m}:    m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。刘, "o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
    4.[]的作用,是用于指定中括号中的内容,举例说或许你更能明白,[0-9]表示的是0到9中的任意一个数,也可以与*,?,+组合使用,如(0-9)*表示的是0到9中的数可以出现任意次,00、23等等均能满足,(0-9)+表示的是0到9中的数必须出现,但次数不限,而?指的则是出现一次或者两次
    5|表示的是或者的关系,要么满足|左边的表达式,要么满足|右边的表达式
      

  2.   

    我的js是这样写的function chkISBN(){
    if(document.forms["myform"].ISBN.value=''){
    alert("请填写货运单号!");
    document.forms["myform"].ISBN.focus();
    return false;
    }
    //开始验证
    var ISBN = document.forms["myform"].ISBN.value;
    var numReg=/^[0-9]{14}$/;chkFlag = numReg.test(ISBN);
    if(chkFlag){
    return true;
    }
    else
    {
    alert("货运单号填写有误,请正确填写!");
    document.forms["myform"].ISBN.focus();
    return false;
    }
    }<input name="ISBN" type="text" size=30  maxlength=30 onblur="chkISBN()">
     
    调试时输入14位数字老报错,说输入得不对,求高手指点啊