正则表达式来评估javascript中的字符串

时间:2014-12-03 02:59:11

标签: javascript regex

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

因此,表达式可以如下,

  

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

     

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

     

x + y //此处x&之间没有空格+在那之间+& ÿ

     

(X + Y)(X * Y)

     

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

     

如果(年龄> 18){a + 90}其他{a-90} //可能存在空格

     

if(married ==“yes”){total * 0.1} else {total * 0.2} //空格可能存在或不存在

以上所有这些例子都是有效的表达。

我试图用单个正则表达式验证所有这些类型的表达式。 正则表达式在JavaScript中的外观如何?

谢谢:)

1 个答案:

答案 0 :(得分:2)

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

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