求一正则表达式是否符合运算规则
如: 1+6*(2+(3-1)/1+(9-5*1))
如: 1+6*(2+(3-1)/1+(9-5*1))
解决方案 »
- 求大神指点:Jquery ui position问题
- new ActiveXObject建立后方法咋调用
- jquery_ajax 遇到问题
- 简写下面的一堆javascript代码,不要用jquery,只能用javascript,各种思路均可,代码越少越好
- 问两个简单的问题 帮帮忙 谢谢
- VS2008 调试的错误。。急!!!
- 怎么会有个child属性的<A href="#" child="login">??不明啊
- 框架中插入PPT的问题
- “var doc = top.treeFrame.window.document”这样的写法有错吗?为什么在本机正常,上传后就会报“top.treeFrame.window”不是对象的错??
- JavaScript获取本地文件夹下面的文件列表并将列表的文件名存入一个数组里面
- Jquery 我只想发数据,不想接返回值,怎么操作
- 正则表达式问题
//这里需要用到平衡组 而且只是正整数的四则混合运算,如果需要小数或者负数的 修改对应“(0|[1-9][0-9]*)”即可
/^((0|[1-9][0-9]*)([-+*/](0|[1-9][0-9]*))*[-+*/]?)*(((?<K>\()((0|[1-9][0-9]*)+([+*/-](0|[1-9][0-9]*))*)+[-+*/]?)+((?<-K>\))([-+*/](0|[1-9][0-9]*)[-+*/]?)*)+)*((0|[1-9][0-9]*)([-+*/](0|[1-9][0-9]*))*)*$/
var str="1+11*((2+3)/5)";
var re=/^((0|[1-9][0-9]*)([-+*/](0|[1-9][0-9]*))*[-+*/]?)*(((?<K>\()((0|[1-9][0-9]*)+([+*/-](0|[1-9][0-9]*))*)+[-+*/]?)+((?<-K>\))([-+*/](0|[1-9][0-9]*)[-+*/]?)*)+)*((0|[1-9][0-9]*)([-+*/](0|[1-9][0-9]*))*)*$/;
if(re.test(str)){
alert("true");
}
else{
alert("false");
}
</script>正则表达式语法错误???
var s = '1+6*(2+(3-1)/1+(9-5*1))';
if(s.match(/[^\+\-\*\/0-9()]/))
{
alert('illegal!')
}
else
{
try
{
alert(eval(s));
}
catch(e)
{
alert('illegal')
}
}
</script>
<script>
var str = "1+6*(2+(3-1)/1+(9-5*1))";
try{
eval("var ret = "+str);
if(ret!=Infinity){
alert("right");
}else{
alert("wrong");
}
}catch(e){
alert("wrong");
}
</script>
function test(s){
try{
return !isNaN(eval("("+s+")"));
}catch(e){
return false;
}
}alert(test("1+6*(2+(3-1)/1+(9-5*1))"));
/^((0|[1-9][0-9]*)([-+*\/](0|[1-9][0-9]*))*(?!\()[-+*\/]?)*(((?<K>\()((0|[1-9][0-9]*)+([+*\/-](0|[1-9][0-9]*))*)+(?!\()[-+*\/]?)+((?<-K>\))([-+*\/](0|[1-9][0-9]*)[-+*\/]?)*)+)*((0|[1-9][0-9]*)([-+*\/](0|[1-9][0-9]*))*)*$/
var a3 = '4'var s = "1*a3"//待判断的式子alert(eval(s))//以上式子会通过。
</script>
function test(s){
var reg=/[\d\.\+\-\*\/\(\)]+/;
try{
return ret.test(s)&&!isNaN(eval("("+s+")"));
}catch(e){
return false;
}
}alert(test("1+6*(2+(3-1)/1+(9-5*1))"));
var s="1*a3";这个通过就不太好了,用我的方法这就通不过
可惜的是JS中不支持平衡组 所以会出现语法错误
特想用此方法,对括号匹对方法进行比较,效率会更高。
//这里需要用到平衡组 而且只是正整数的四则混合运算,如果需要小数或者负数的 修改对应“(0|[1-9][0-9]*)”即可
/^((0|[1-9][0-9]*)([-+*/](0|[1-9][0-9]*))*[-+*/]?)*(((?<K>\()((0|[1-9][0-9]*)+([+*/-](0|[1-9][0-9]*))*)+[-+*/]?)+((?<-K>\))([-+*/](0|[1-9][0-9]*)[-+*/]?)*)+)*((0|[1-9][0-9]*)([-+*/](0|[1-9][0-9]*))*)*$/