CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

正则问题:阿信,这个问题非你莫属

楼主rollrock(现实像一只笼子)2003-09-03 14:44:52 在 Web 开发 / JavaScript 提问

有这样一个sql查询条件"x=5   and   a.b=c.b   and   y>6",我想把其中的关联条件a.b=c.b删掉,而又保持没有多余的"and",但是,关联条件所处的位置可能有以下三种:  
  1.x=5   and   a.b=c.b   and   y>6  
  2.x=5   and   y>6   and   a.b=c.b  
  3.a.b=c.b   and   x=5   and   y>6s  
  如果事先知道是哪种情况,删掉的话还好说,但是,条件的位置事先是不知道的,怎么用最少的正则表达式删掉关联条件和多余的“and”。谢谢。 问题点数:20、回复次数:6Top

1 楼xuzuning(唠叨)回复于 2003-09-03 15:01:29 得分 20

<script>  
  ar   =   new   Array(  
  "x=5   and   a.b=c.b   and   y>6",  
  "x=5   and   y>6   and   a.b=c.b",  
  "a.b=c.b   and   x=5   and   y>6s"  
  )  
   
  var   re   =   /   and   a.b=c.b|a.b=c.b   and   /g;  
  for(i=0;i<ar.length;i++)   {  
      ar[i]   =   ar[i].replace(re,"");  
      document.write((i+1)+"."+ar[i]+"<br>");  
  }  
  </script>  
  Top

2 楼rollrock(现实像一只笼子)回复于 2003-09-03 15:47:15 得分 0

补充一下:关联字段名作为参数可以指定,以删除指定的多表连接。而且sql条件也是未知的,上述的条件只是举个例子Top

3 楼xuzuning(唠叨)回复于 2003-09-03 17:29:59 得分 0

var   re   =   /   and   a.b=c.b|a.b=c.b   and   /g;  
   
  改作  
  var   s   =   "a.b=c.b";  
  var   re   =   eval("/   and   "+s+"|"+s+"   and   /g");Top

4 楼xuzuning(唠叨)回复于 2003-09-03 17:30:23 得分 0

var   re   =   /   and   a.b=c.b|a.b=c.b   and   /g;  
   
  改作  
  var   s   =   "a.b=c.b";  
  var   re   =   eval("/   and   "+s+"|"+s+"   and   /g");Top

5 楼rollrock(现实像一只笼子)回复于 2003-09-03 23:41:54 得分 0

to   xuzuning:  
  有道理,试试先Top

6 楼runmin()回复于 2003-09-04 09:30:20 得分 0

<script>  
  var   tmp   =   "x=5   and   a.b=c.b   and   y>6".split("   and   ");  
  var   newtmp   =   new   Array();  
   
  for   (   var   i=0;   i<tmp.length;   i++   )    
  {  
  if   (   tmp[i]   !=   "a.b=c.b"   )  
  {  
  newtmp[newtmp.length]   =   tmp[i];  
  }  
  }  
   
  var   result   =   newtmp.join("   and   ");  
  alert(result);  
  </script>Top

7 楼runmin()回复于 2003-09-04 09:53:31 得分 0

<script>  
  var   tmp   =   "x=5   and   y>6   and   a.b=c.b";  
  alert(tmp.replace(/a\.b\=c\.b   and|and   a\.b\=c\.b/,""));  
   
  var   tmp   =   "x=5   and   a.b=c.b   and   y>6";  
  alert(tmp.replace(/a\.b\=c\.b   and|and   a\.b\=c\.b/,""));  
   
  var   tmp   =   "a.b=c.b   and   x=5   and   y>6";  
  alert(tmp.replace(/a\.b\=c\.b   and|and   a\.b\=c\.b/,""));  
  </script>  
  Top

相关问题

  • 求一个关于提取URL信息的正则表达式
  • 如何用正则表达式提取网页上的信息!!!!
  • ◎◎◎◎◎正则表达式验证会员EMAIL注册信息◎◎◎◎◎
  • 正则正则!!!
  • 请教怎么用正则表达式提取以下的信息啊
  • 正则
  • 正则
  • 正则?
  • 请问如何用正则表达式把下面的信息取出来?谢谢
  • 在JAVASCRIPT中如何通过正则表达验证表单中的文本框信息时间11:03:00

关键词

  • 删掉
  • 关联
  • 条件
  • var re

得分解答快速导航

  • 帖主:rollrock
  • xuzuning

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo