我有一个文本字段,用户可以在其中编写可以包含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中的外观如何?
谢谢:)
答案 0 :(得分:2)
您无法使用正则表达式执行此操作。主要问题是您无法检查嵌套括号,括号,大括号等的任意级别是否平衡。 (有关详细信息,请参阅this thread的答案。)
在正则表达式中处理可选的空格很容易;只需在允许使用可选空格的每个位置使用\s*
,并在需要空格的地方使用\s+
(例如,分隔单词 - 例如else\s+if
,其中必须至少有一个和" else"和" if")之间可能有更多的空格字符。