用于计算 JavaScript 中字符串的正则表达式

Regular expression to evaluate string in javascript

本文关键字:正则表达式 字符串 计算 JavaScript 用于      更新时间:2023-09-26

我有一个文本字段,用户可以在其中编写一个数学表达式,其中可能包含if-else块。

因此,表达式可以如下所示,

a *

b//这里 a 和 * 之间有空格

p+q//这里 p 和 + 之间没有空格

x+ y//这里 x 和 + bu 之间没有空格 + 和 y 之间

(x+y)(x*y)

if(a>10){a+b}else if(b>10){b-a}else{a+b}

if( age>18 ){ a+90 }else{ a-90 }//空格可能存在或不存在

if( 已婚 == "是"){ 总计*0.1 } 其他{ 总计*0.2 }//空格可能存在或不存在

以上这些示例都是有效的表达式。

我正在尝试使用单个正则表达式验证所有这些类型的表达式。正则表达式在 JavaScript 中是什么样的?

谢谢:)

不能使用正则表达式执行此操作。主要问题是您无法检查任意级别的嵌套括号、括号、大括号等是否平衡。(有关详细信息,请参阅此线程的答案。

在正则表达式中处理可选的空格很容易;只需's*允许使用可选空格的每个位置,并在需要空格的地方使用's+(例如,分隔单词 - 例如else's+if,其中"else"和"if"之间必须至少有一个甚至可能更多的空格字符)。