写了个简版的js语法分析器,卡在了斜杠上
正斜杠是正则开始还是除号,这个实在想不到简单的方式判定。
一下午写好了一个简洁的语法分析器,难道就为了判定正则表达式,就要进行重度语法分析吗。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
正斜杠是正则开始还是除号,这个实在想不到简单的方式判定。
一下午写好了一个简洁的语法分析器,难道就为了判定正则表达式,就要进行重度语法分析吗。。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
这就要看你对于这个项目的需求了,首先来讲,用重度语法分析肯定是没问题的,而且完美解决问题的,最重要的是它还能解决未来如果你的对于项目需求的拓展,因为js文本会造成混淆的也不至于正则表达式,但是缺点也很明显,就是成本太高。
所以如果你预计对于这个项目的需求有拓展的,建议使用重度语法分析,这是一劳永逸。
但是如果没有,你可以找些取巧的偷懒方法,比如加一些限定,找出所有情况下的限定,然后放入判断。
你可以在chrome控制台测试一下,他很明显是用规则:“某些特定字符出现在/之前时,如果能匹配到下一个/,视为正则表达式,且正则表达式范围仅限第一个与第二个/,其余都视为除法”处理的