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

rollrock 2003-09-03 02:44:52
有这样一个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”。谢谢。
...全文
41 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
blues-star 2003-09-04
  • 打赏
  • 举报
回复
<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>
blues-star 2003-09-04
  • 打赏
  • 举报
回复
<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>
rollrock 2003-09-03
  • 打赏
  • 举报
回复
to xuzuning:
有道理,试试先
xuzuning 2003-09-03
  • 打赏
  • 举报
回复
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");
xuzuning 2003-09-03
  • 打赏
  • 举报
回复
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");
rollrock 2003-09-03
  • 打赏
  • 举报
回复
补充一下:关联字段名作为参数可以指定,以删除指定的多表连接。而且sql条件也是未知的,上述的条件只是举个例子
xuzuning 2003-09-03
  • 打赏
  • 举报
回复
<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>

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧