日期:2014-05-16  浏览次数:20320 次

如何用正则表达式去除公式中的字符串
我需要用正则表达式在去除公式中字符串,
比如 abc+"def"+'ghi'+jkl 
去除后为 abc+++jkl 
我用的是 ["'][\w\s]*["']

但是如果公式中有转义符\"或\'或末尾为\\的情况就会出现错误
比如 abc+"ddd\"eee\'f"+'ghi\\'+jkl
或者遇到不成对的引号,比如abc+'def"+jkl 我需要保留下来,实际却一样会去除

实在搞不定了,还请高人指点啊!

谢谢谢谢了!!!!
下面是我的测试代码,正确的输出应该为
abc+++'jkl"+mno 

<html>
<body>
<script type="text/javascript">

var str="abc+\"ddd\\\"eee\\\'fff\\\\\"+'ggg\\\"hhh\\\'iii\\\\'+\'jkl\"+mno"
document.write(str + "<br />")
document.write(str.replace(/["'][\w\s]*["']/g,"") + "<br />")

</script>
</body>
</html>

------解决方案--------------------
var t="abc+\"def\"+'ghi'+jkl+'sdsd\"+\"jooio'";
alert(t);
alert(t.replace(/('(.*?)')/,'').replace(/"(.*?)"/,''));

------解决方案--------------------

var str="abc+\"ddd\\\"eee\\\'fff\\\\\"+'ggg\\\"hhh\\\'iii\\\\'+\'jkl\"+mno";
    alert(str.replace(/\\/g,"").replace(/'[^+]*'/g,"").replace(/"[^+]*"/g,""));