簡體   English   中英

用於驗證JS中邏輯運算符表達的正則表達式

[英]Regular expression to validate logical operator expression in JS

我從Regex獲得了正則表達式來驗證邏輯&& || 字符串運算符,用於驗證C#中的邏輯運算符表達式

"^(?=^[^()]*\((?>[^()]+|\((?<DEPTH>)|\)(?<-DEPTH>))*(?(DEPTH)(?!))\)[^()]*$)[(]*\d+[)]*(\s+(&&|\|\|)\s+[(]*\d+[)]*)*$"

但是我不能將其用作JS。 誰能幫助我將此正則表達式轉換為JS或與我共享任何將RegExp從C#轉換為JS的工具?

您不能直接將其轉換為JS。 .NET支持遞歸正則表達式,而JS不支持(我反對使用它,因為它不可能讀取和維護)。

您最好為此使用基於堆棧的解析器(即狀態機)。 問題實際上與構建計算器的方式沒有什么不同(例如,如何解析“(1 + 2)* 3”之類的字符串?)。 例如,您可以在這里找到一個簡單的解析器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM