Javascript 用于验证JS中逻辑运算符表达式的正则表达式
我从中得到了正则表达式,用于验证C#中的逻辑运算符表达式Javascript 用于验证JS中逻辑运算符表达式的正则表达式,javascript,c#,Javascript,C#,我从中得到了正则表达式,用于验证C#中的逻辑运算符表达式 “^(?=^[^()]*\((?>[^()]+\((?))\(?)*(?)*((?)(!)\)[^()]*$)[(]*\d+[)]*(\s+(&&&&&&&&\\\\\\\\\\\\\)\s+[(]*\d+[)*)*)” 但是,我不能将其用作JS。有人能帮我把这个正则表达式转换成JS吗,或者给我分享一下把正则表达式从C#转换成JS的工具吗?你不能直接把它转换成JS。NET支持递归正则表达式,而JS不支持(我反对使用它,因为它不可能读取和
“^(?=^[^()]*\((?>[^()]+\((?))\(?)*(?)*((?)(!)\)[^()]*$)[(]*\d+[)]*(\s+(&&&&&&&&\\\\\\\\\\\\\)\s+[(]*\d+[)*)*)”
但是,我不能将其用作JS。有人能帮我把这个正则表达式转换成JS吗,或者给我分享一下把正则表达式从C#转换成JS的工具吗?你不能直接把它转换成JS。NET支持递归正则表达式,而JS不支持(我反对使用它,因为它不可能读取和维护)
为此,最好使用基于堆栈的解析器(即状态机)。问题其实与如何构建计算器没有什么不同(例如,如何解析像“(1+2)*3”?这样的字符串)。例如,您可以找到这样一个简单的解析器。是否有任何资源可以解析后缀符号后面的字符串?
"^(?=^[^()]*\((?>[^()]+|\((?<DEPTH>)|\)(?<-DEPTH>))*(?(DEPTH)(?!))\)[^()]*$)[(]*\d+[)]*(\s+(&&|\|\|)\s+[(]*\d+[)]*)*$"