写了个简版的js语法分析器,卡在了斜杠上

正斜杠是正则开始还是除号,这个实在想不到简单的方式判定。
一下午写好了一个简洁的语法分析器,难道就为了判定正则表达式,就要进行重度语法分析吗。。

阅读 3.3k
2 个回答

这就要看你对于这个项目的需求了,首先来讲,用重度语法分析肯定是没问题的,而且完美解决问题的,最重要的是它还能解决未来如果你的对于项目需求的拓展,因为js文本会造成混淆的也不至于正则表达式,但是缺点也很明显,就是成本太高。
所以如果你预计对于这个项目的需求有拓展的,建议使用重度语法分析,这是一劳永逸。
但是如果没有,你可以找些取巧的偷懒方法,比如加一些限定,找出所有情况下的限定,然后放入判断。

你可以在chrome控制台测试一下,他很明显是用规则:“某些特定字符出现在/之前时,如果能匹配到下一个/,视为正则表达式,且正则表达式范围仅限第一个与第二个/,其余都视为除法”处理的

推荐问题