2014-12-03 72 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」和其他字符之間必須至少包含一個或多個空格字符「如果」)。

相關問題