前面的a不必是^a。
你的这个正则表达是匹配的情况是这样的:最后面必须由a或者a后面带一串数字结尾。
如果a和数字之间出现别的字符,那么匹配失败。

解决方案 »

  1.   

    简化一下,可以改成/a.*\d*$/如果你必须由a开头,那么就是/^a.*\d*$/
      

  2.   

    谢谢大家的答复!
    但我要问的是为什么a2之后不能有字符了,a2c9为什么会错?
    我得要明白期中的原理吧?
      

  3.   

    [a][0-9]*$
    比配是按顺序进行的
    比如有串
    era2ca345
      ^- 从这里开始,匹配到“a”,期望下一个是0~9
    era2ca345
       ^- 到这里,匹配到“0”,期望下一个是0~9

    era2ca345
        ^- 到这里,发现“c”与期望的0~9不同,本轮匹配失败
    直到
    era2ca345
         ^- 从这里
    era2ca345
             ^- 到这里,才完成一次有效的匹配
      

  4.   

    xuzuning(唠叨)
    讲的很透彻,使我明白匹配的原则。我以前没弄明白是怎样匹配的。
    可能我问题没题对,害得众多朋友理解错了。谢谢大家了。
    从大家身上又学到知识了.^v^