Javascript 使用正则表达式删除常量
我想用Javascript做一些简单的派生,例如Javascript 使用正则表达式删除常量,javascript,regex,Javascript,Regex,我想用Javascript做一些简单的派生,例如 f(x) = 1-3x<sup>2</sup>-3+8x<sup>3</sup>+2 我被绊倒了,因为我不知道如何删除常量。我试过很多东西,但都不管用。有人能帮帮我吗?这个正则表达式应该可以完成替换(/(?:^ |[-+])\d+([^x]|$)/g,“$1”) 分项数字如下: (?:^ |[-+])-匹配字符串开头或单个加号或减号的非捕获组 \d+-一个或多个数字 ([^x]|$)-匹配非x字符
f(x) = 1-3x<sup>2</sup>-3+8x<sup>3</sup>+2
我被绊倒了,因为我不知道如何删除常量。我试过很多东西,但都不管用。有人能帮帮我吗?这个正则表达式应该可以完成替换(/(?:^ |[-+])\d+([^x]|$)/g,“$1”) 分项数字如下:
(?:^ |[-+])
-匹配字符串开头或单个加号或减号的非捕获组
\d+
-一个或多个数字
([^x]|$)
-匹配非x字符或字符串结尾的捕获组
$1
-获取捕获的字符(如果存在),并将其放回表达式中
var op=“1-3x2-3+8x3+2”;
var math=op.replace(/(?:^ |[-+])\d+([^x].$)/g,“$1”)
math=math.replace(/x/g,'*math.pow(x,);
math=math.replace(//g',);
警报(数学)
Regex对于您的问题可能不够强大,因为它们不考虑上下文-常量只有在它是自由项时才可能被删除,但当它用作函数参数时则不会被删除。一些正则表达式引擎支持ReGEX类似于简化语法制作,Bug JS不。我很害怕,在构建字符串时,你在字符串上运行<代码> EVA/CODE吗?还是考虑像<代码>(((1)))< /COD>之类的表达式,一般“纯”正则表达式甚至不能匹配平衡圆括号。
var math = op.replace(/x<sup>/g , '*Math.pow(x,');
math = math.replace(/<\/sup>/g , ')');
math = math.replace(/\,[0-9]/g, function (match, capture) {return parseInt(match.replace(',',''))-1;});
math = math.replace(/x/g, 'x,');