正则表达式可识别无括号的if语句

时间:2019-04-18 13:42:48

标签: regex

我正在尝试创建一个正则表达式,以从传统的if语句中检测Javascript中的无括号if语句。

我正在尝试检测这样的语句:

if (foo) doSomething(); 

未检测到以下语句:

if (foo) {
    doSomething();
}

到目前为止,我想出了以下表达式:if(\s*)\(.*\)\s(?!{),它使我能够检测到大多数对if和条件之间的空格不敏感的if语句。

但是,由于以下原因(例如由于函数调用的右括号引起的),该表达式也会被语句触发:

if (foo()) {
    doSomething();
}

总有办法防止这种情况的发生,或者从根本上说这是不可能的吗?

1 个答案:

答案 0 :(得分:0)

类似/if.*\)\s*(?!\{)\s*\n\s*(?!\{)/gm

当然,它仍然可以在字符串,JSX等中匹配