需要验证的可分为三部分
*-部分+数字部分+字母部分,具体例子如:*-2h,
*-这个是必须的,而且位置也是固定在开始位置,
然后数字部分在中间,可以带一个小数点,如*-2.5h,
最后字母部分只能在最后,字母大小写无限制,但只能为d、h、m、s、w、mo、y其中一个。 求帮忙。

解决方案 »

  1.   

    var re = /^\*\-\d+(\.\d+)?(d|h|m|s|w|mo|y)$/;

    alert(re.test('*-2h'));//true
    alert(re.test('*-2mo'));//true
    alert(re.test('*-2.3s'));//false
    alert(re.test('*-2x'));//false
    alert(re.test('*-2.3ws'));//false
    alert(re.test('*-4h2'));//false
      

  2.   

            var re = /^\*\-\d+(\.\d+)?(d|h|m|s|w|mo|y)$/i;//加上i修正符
      

  3.   

    注释错了。 alert(re.test('*-2.3s'));//true
      

  4.   


    这个是只要开始有*的全匹配,我想要个只有*匹配,再多任何东西都不匹配。var re = //;alert(re.test('*'));//true
    alert(re.test('*-'));//false
      

  5.   


    var re = /^[*]$/;//或者var re = /^\*$/;alert(re.test('*'));//true
    alert(re.test('*-'));//false
    不转义放字符集里面也行。