var a="a     b     c"
var b=/^a\s{0,5}b\s{0,5}c$/
if(b.test(a)){
   alert("true")
}else{
alert("false")
}

解决方案 »

  1.   

    你的要求说的不是很明确,这个是abc的顺序一定,a必须在开头,c必须在最后 ,2端有空格也不对
      

  2.   

    <script type="text/javascript">
    //<![CDATA[
     var str='a bc,ab c,a b c';
     var str1='abc'
     var re=new RegExp('a[ ]{0,5}b[ ]{0,5}c[ ]{0,5}','i');
     if(re.test(str))alert('ok');
     if(re.test(str1))alert('ok');
    //]]>
    </script>
      

  3.   

    ooo...楼楼上的 \s 不只是空格呀.
      

  4.   

    /(?:(?:a|b|c)[ ]{0,5})*/i  //abc顺序不一定 可有可无
    /(?:(?:a|b|c)[ ]{0,5}){3}/i //.....随便写的/(a|b|c)[ ]{0,5}(?!\1)(a|b|c)[ ]{0,5}(?!\1|\2)(a|b|c)/i  //abc无重复 无限制顺序(不用后续查询就不知道怎么写了)
    String.prototype.mm = function(){
    var rule = /(a|b|c)[ ]{0,5}(?!\1)(a|b|c)[ ]{0,5}(?!\1|\2)(a|b|c)/i;
    if(rule.test(this))
    return this.match(rule)[0];
    else
    return "NoMatch";
    }
    alert("a   b  c".mm());
    alert("c   b  a".mm());
      

  5.   

    abc|a\s{0,5}bc|ab\s{0,5}c|a\sb\s{0,4}c|a\s{0,2}b\s{0,3}c|a\s{0,3}b\s{0,2}c|a\s{0,4}b\sc
    已调试
      

  6.   

    没有必要局限在只用一个正则表达式上了,换个思路,把两个判断分成两句代码来做就简单了: var str='a bc,ab c,a b c';
     var re=/a\s*b\s*c/g, mm;
     if(mm=str.match(re))
     {
        for(var i=0; i<mm.length; i++)
        {
            if(mm.length<8){alert(true); break;}
        }
     }
      

  7.   

    呵呵 没什么 我只是测试下自己的正则表达式能力 这东西太久不用会忘的
    另外\s好像会匹配换行,如果只是单纯空格的话不要用\s的好.PS:我搞JS开发都完全忽略IE5.5~6.0以外的浏览器 顾及太多会大大影响开发速度和开发思路
    希望FF出兼容6.0的版本,要不我看FF在企业级应用上没什么前途
    呵呵 好像说多了很多废话 大家当我放屁好了
      

  8.   

    :meizz(梅花雪
    的最直接有效。
      

  9.   

    <script LANGUAGE='javascript'> var a="a b  c";
    var msg = "不匹配";
    if(/a([ ]*)b([ ]*)c/.test(a))
    {
    if(RegExp.$1.length+RegExp.$2.length<=5)
    msg = "匹配";

    }
    alert(msg);</script>
      

  10.   

    javascript 真是难懂 对象不用显示的赋值和实例化都可以用if(/a([ ]*)b([ ]*)c/.test(a))
    {
    if(RegExp.$1.length+RegExp.$2.length<=5)
    msg = "匹配";
    }就这样 对象RegExp居然被实例了 让不会的人读起来更困难了看来我要变成骨灰还得继续炼.....
      

  11.   

    不要带着其它语言的观点来学JS,JS语言本身自成一派。比如在其它语言里想对某个对象进行扩充就得先继承它再在自己的类里写扩展,而在JS里可以直接进行原型扩展的;比如JS可以把字符串或者对象当作判断的条件来运行,这在其它的语言里是根本不可理喻的。
      

  12.   


    http://www.igfire.com/gold.asp WoW gold
    http://www.igfire.com/wowus WoW power leveling
    http://www.igfire.com/woweu.asp WoW power leveling
    http://www.igfire.com WoW power leveling
    http://www.igfire.com WoW power leveling
      

  13.   

    恩 大侠说得对 不能以其他语言的思维应用在JS上面
    的确 JS是一个以范类为主要载体的语言 只要抓住Object才能抓住根本. 看来不是什么东西都能理想化. 
    另外我想问下 JS对原型的扩展是引用对象 还是另外创建一个崭新的对象? 问问用来作为系统资源使用量的参考
      

  14.   

    String.prototype.trim=function()
    {
        return this.replace(/(^[\s\t ]+)|([ \s\t]+$)/g, "");
    };alert(" name  :  gzdiablo  ".trim()); //原型当然就是原型,不过是崭新的对象
      

  15.   

    所说的扩展原来就是prototype 呵呵 不好意思我老是搞混这些专业名词