/^(?:(?:\(\d{3,4}\)|\d{3,4})?-?\d{7,8})$/     | 他是匹配前后哪俩个模式,从哪开始是第一个模式,结束于哪个模式?

解决方案 »

  1.   

    |匹配的是包含它的括号里的多项 注意看你那个表达式 是不是可以拆成这样的(\d{3,4}\)|\d{3,4}) 它就匹配\d{3,4}\(和\d{3,4}其中一个
      

  2.   

    上面说的不正确 眼花了没看清楚 实际上是这个(?:\(\d{3,4}\)|\d{3,4}) 前后分别是\(\d{3,4}\)   \d{3,4}
      

  3.   

    /^(?:(?:\(\d{3,4}\)|\d{3,4})?-?\d{7,8})$/    
      

  4.   

    /^(?:(?:\(\d{3,4}\)|\d{3,4})?-?\d{7,8})$/