如何匹配指定字符和字符串以外的所有内容?正则表达式

时间:2018-04-25 10:29:52

标签: javascript regex match

我正在构建一个图形抽屉,目前正在处理数学表达式解析器。我已经完成了大部分工作,但在解析它之前我一直在清理输入文本。我现在想要实现的是摆脱不允许的角色。

例如,在本文中:

  

5AX + 4asxxv + sdflog10aloga(132 * 43)SIN(132)

我希望匹配不是+-*/^(,{{1 }},)lnlogsincostancotarcsin ... 并用arccos替换它们。

以便输出

  

5×+ 4XX + log10log(132 * 43)SIN(132)

我需要有关正则表达式的帮助。

空格并不重要,因为我事先将它们清除了。

1 个答案:

答案 0 :(得分:0)

有点棘手 - 至少我不会想到一个简单的方法来做你所要求的。正则表达式会变得怪异。

所以我反过来做了 - 匹配你想要保留的东西,并把它放回去。

正则表达式:

[\d+*/^()x-]|ln|log|(?:arc)?(?:sin|cos)|tan|cot

代码:



var re = /[\d+*/^()x-]|ln|log|(?:arc)?(?:sin|cos)|tan|cot/g,
    text = '5ax+4asxxv+sdflog10aloga(132*43)sin(132)arccos(1)';

console.log(text.match(re).join(''));