请大家看一下,我下面三个正则表达式能否合成一个, 三个条件都要满足,谢谢                var reg1=/<embed[^>]+Height\s*=\s*/i;
                var reg2=/<embed[^>]+width\s*=\s*/i;
                var reg3=/<embed[^>]+src\s*=\s*/i;
       
                if(reg1.test(textstr) && reg2.test(textstr) && reg3.test(textstr)){
  console.log("reg is true");
  return true;
}
else{
  console.log("reg is false");
          return false;
        }

解决方案 »

  1.   

    var reg=/<embed[^>]+(Height|width|src)\s*=\s*/i;
      

  2.   

    不行的, 我要的是Height,width,src都必须出现,且顺序没有关系,你这样上一或者的关系
      

  3.   

    修改:
    var reg=/<embed[^>]+(?=.*Height)(?=.*width)(?=.*src)((Height|width|src)\s*=\s*)/i;
      

  4.   

    结果是对的, (?=.*src)能解释一下这是什么作用吗, (Height|width|src)后面怎么又有或者的关系
      

  5.   

    (?=.*src) : 表示前面必須有src (Height|width|src) 可以用(.*)
    //这個比較正確
    var reg=/<embed[^>]+(?=.*Height\s*=\s*)(?=.*width\s*=\s*)(?=.*src\s*=\s*).*/i;