Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式删除常量_Javascript_Regex - Fatal编程技术网

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字符

我想用Javascript做一些简单的派生,例如

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,');