我要验证一个1~200的值 什么搞呀  ([1-9]{1}[0-9]{0,3}|10000)这个怎么不行呀?为什么/[a-b]{1}/输入aa也可以通过?还有一个要验证7000~1500000的一个,

解决方案 »

  1.   

    1. 0-2000~99: (?!\d{3})\d+
    100~199: 1\d\d
    200:  200于是,0-200 表达式: \b((?!\d{3})\d+|1\d\d|200)\b测试工具:(推荐)
    http://www.regexlab.com/zh/workshop.asp?pat=%5Cb%28%28%3F%21%5Cd%7B3%7D%29%5Cd%2B%7C1%5Cd%5Cd%7C200%29%5Cb&txt=0%2C1%2C...199%2C200%2C201%2C202%2C...%2C1999%2C20002. /[a-b]{1}/ 输入 aa实际上只匹配了一个"a",但匹配结果也算匹配成功。如果只能为一个 "a" 或者 "b",那么需要在表达式的两边加上 "^...$" 或者 "\b...\b"3. 7000~15000007000~9999:(?=\d{4}(?!\d))[7,8,9]\d+
    10000~999999:(?=\d{5,6}(?!\d))\d+
    1000000~1499999:(?=\d{7}(?!\d))1[0-4]\d+
    1500000:1500000于是:\b((?=\d{4}(?!\d))[7,8,9]\d+|(?=\d{5,6}(?!\d))\d+|(?=\d{7}(?!\d))1[0-4]\d+|1500000)\b测试工具:(推荐)
    http://www.regexlab.com/zh/workshop.asp?pat=%5Cb%28%28%3F%3D%5Cd%7B4%7D%28%3F%21%5Cd%29%29%5B7%2C8%2C9%5D%5Cd%2B%7C%28%3F%3D%5Cd%7B5%2C6%7D%28%3F%21%5Cd%29%29%5Cd%2B%7C%28%3F%3D%5Cd%7B7%7D%28%3F%21%5Cd%29%291%5B0-4%5D%5Cd%2B%7C1500000%29%5Cb&txt=6999%2C7000%2C10000%2C1400000%2C1500000%2C15000014. 更多正则表达式帮助,欢迎参考正则表达式入门文档:(推荐)
    http://www.regexlab.com/zh/regref.htm
      

  2.   

    3. 7000~15000007000~9999:(?=\d{4}(?!\d))[7,8,9]\d+
    10000~999999:(?=\d{5,6}(?!\d))\d+
    1000000~1499999:(?=\d{7}(?!\d))1[0-4]\d+
    1500000:1500000看到  7000~9999:(?=\d{4}(?!\d))[7,8,9]\d+
    这里的(?!\d)是干什么用的呀,
    不能为数字吗?
    好像加不加没有什么区别了