abs之后第一个(,>之前第一个)
解决方案 »
- 我想要做一个登陆页面提交表单验证身份后如果登录失败则返回登陆页面并用alert来弹出窗口显示登录失败信息,该怎么做?
- JS如何捕获图片SRC 在线等
- js 的innerHTML显示
- 帮忙分析JS怎么遍历整个无限节点XML文档 算法已提供
- 求教:怎样在Javascript中控制table的style属性?
- 请问这数组赋值怎么会出错呢?帮我看看好吗?(80分)
- 请帮我看看这段代码为啥不执行啊?
- 关于insertAdjacentHTML的问题,先解决的分数全拿去
- 怎么通过js控制,点击表格后设置 tr 的背景色?
- var row = $(schId).datagrid('getSelected');
- jQuery能不能修改xml文件
- body.find('>textarea');是什么意思?
var s="abs((a1+a4)-a5)>d8+d9";
alert(s.replace(/(abs)\(([^\(]*\([^\)]*\)[^\)]*)\)/g,"$1 $2"));
感谢
不过试了一下
var s="abs((d7+d9))>d8+d9";
alert(s.replace(/(abs)\(([^\(]*\([^\)]*\)[^\)]*)\)/g,"$1 $2"));并没有做到 abs(d7+d9) >d8+d9
只是想去掉abs的括号 - -
alert(s.replace(/\babs\((.*)\)/g,"abs $1 ")); //abs (a1+a4)-a5 >d8+d9
感谢
不过试了一下
var s="abs((d7+d9))>d8+d9";
alert(s.replace(/(abs)\(([^\(]*\([^\)]*\)[^\)]*)\)/g,"$1 $2"));并没有做到 abs(d7+d9) >d8+d9
只是想去掉abs的括号 - -
6楼正解 你的字符串有全角括号
var reg = /(abs)(\()((?:[^\(\)]*(?:\([^\)\(]*\))[^\(\)]*)*)(\))/g;
s = s.replace(reg,"$1$3");
感谢
不过试了一下
var s="abs((d7+d9))>d8+d9";
alert(s.replace(/(abs)\(([^\(]*\([^\)]*\)[^\)]*)\)/g,"$1 $2"));并没有做到 abs(d7+d9) >d8+d9
只是想去掉abs的括号 - -
6楼正解 你的字符串有全角括号还以为你说我呢
往回看了一下,楼主的代码有全角
笔误吧,代码中可能全角?
感谢
不过试了一下
var s="abs((d7+d9))>d8+d9";
alert(s.replace(/(abs)\(([^\(]*\([^\)]*\)[^\)]*)\)/g,"$1 $2"));并没有做到 abs(d7+d9) >d8+d9
只是想去掉abs的括号 - -
6楼正解 你的字符串有全角括号还以为你说我呢
往回看了一下,楼主的代码有全角
笔误吧,代码中可能全角?嗯 是笔误 没有全角
谢谢大神 就是这个效果 !万分感谢对了,提示一下,这个正则适合abs()作为最外围的情况,类似以下的不适用:
sub(abs());
外面又嵌套了多个的括号的情况时,正则里不好判断后面应该截取到哪个括号,建议你使用编码
谢谢大神 就是这个效果 !万分感谢对了,提示一下,这个正则适合abs()作为最外围的情况,类似以下的不适用:
sub(abs());
外面又嵌套了多个的括号的情况时,正则里不好判断后面应该截取到哪个括号,建议你使用编码
感谢提醒 如果遇到sub( abs());这种情况怎么办?编码是什么?怎么解决呢
结论:js的正则是无法做到深度嵌套的匹配的。
大多数系统中,正则表达式都无法匹配任意深度的嵌套结构。只能手动写死属于几层嵌套,比如处理单层嵌套的正则是:
\([^()]*(\([^()]*\)[^()]*)*\)
在以前很长的一段时间里,都没有哪个系统做到了这个支持,不过现在Perl、.NET和PCRE/PHP都提供了解决的办法,比如Perl,以下的正则可以指定嵌套深度¥depth,它使用的是Perl的“string x count”运算符,这个运算符会把string重复count次:
$regex = '\('.'(?:[^()]|\(' x $depth . '[^()]*' . '\))*' x $depth .'\)';