2014-12-03 41 views
-2

我有一个textfield,用户可以在其中编写一个可能包含if-else块的mathamatical表达式。用javascript评估字符串的正则表达式

所以,一个表达式可以是如下,

A * B //这里还有一个和之间的空间*

P + Q //这里没有空间p这里之间和+

X + Y //有X之间没有空格& + BU那里之间+ &ÿ

(X + Y)(X * Y)

如果(> 10){A + B}否则如果(B> 10){BA}否则{A + B}

如果(年龄> 18){+ 90}其他{A-90} //空间可以呈现或不

如果(已婚== “是”){*总0.1}否则{总计* 0.2} //空格是否存在

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

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

谢谢:)

+0

你试过了什么?那么嵌套的if-else块呢? – 2014-12-03 03:01:02

+0

由于不了解regx,因此无法继续。是的,如果还有其他嵌套的话。 – 2014-12-03 03:03:04

+0

用正则表达式很难做到。 – 2014-12-03 03:04:04

回答

2

你不能用正则表达式来做到这一点。主要的问题是你无法检查任意级别的嵌套括号,括号,大括号等是否平衡。 (有关更多信息,请参见this thread的答案。)

在正则表达式中处理可选空白区很容易;只需使用\s*每个允许使用可选空白的地方,并在需要使用空格的地方使用\s+(例如,将单词—(如else\s+if)分隔开,其中在“else”和其他字符之间必须至少包含一个或多个空格字符“如果”)。

相关问题