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

Javascript 如何匹配除指定字符和字符串之外的所有内容?正则表达式,javascript,regex,match,Javascript,Regex,Match,我正在构建一个图形抽屉,目前正在开发数学表达式解析器。我已经完成了大部分的部分,但是在解析输入文本之前,我一直在清除输入文本。我现在要做的是摆脱未经许可的字符 例如,在本文中: 5ax+4asxxv+sdflog10aloga(132*43)sin(132) 我想匹配所有不是+,-,*,/,,(,),ln,log,sin,cos,tan,cot,arcin,,。。。 并将其替换为“ 所以输出是 5x+4xx+log10log(132*43)sin(132) 我需要你帮我做正则表达式 空间并不重要

我正在构建一个图形抽屉,目前正在开发数学表达式解析器。我已经完成了大部分的部分,但是在解析输入文本之前,我一直在清除输入文本。我现在要做的是摆脱未经许可的字符

例如,在本文中:

5ax+4asxxv+sdflog10aloga(132*43)sin(132)

我想匹配所有不是
+
-
*
/
ln
log
sin
cos
tan
cot
arcin
,。。。
并将其替换为

所以输出是

5x+4xx+log10log(132*43)sin(132)

我需要你帮我做正则表达式


空间并不重要,因为我事先会清除它们。

有点棘手-至少我想不出一个简单的方法来满足你的要求。正则表达式将变得异常庞大

所以我用了另一种方式——匹配你想要保留的,然后重新组合

正则表达式:

[\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)(“”))