div
添加contentEditable
属性支持编辑,并且实现了文本高亮。
然后想做些简单的语法判断,比如括号必须成对出现,+号后面不能有 /等等。。
先阶段我用正则校验的,但是效果并不好,像vs code
这种是如何做到的。
1
codehz 2020-12-16 12:48:54 +08:00 via Android
简单的话就整一个 parser,然后把需要的语法考虑进去就好了。。。
比如你这种需求一个简单的状态机就搞定,注意忽略注释和文本里的,然后把左括号放栈里,遇到右括号就弹出来对比一下是否匹配,最后扫描到结尾栈里还有东西就说明漏了。。。 (继续扩展下去就可以做完整的 parser 了 |
2
miao1007 2020-12-16 12:53:49 +08:00 via iPhone
monaca editor
|
3
cyberpoint OP @codehz 看来还是要把关键符号放在栈里,才好计算。我现在是每一次都对所有做正则匹配,确实有些麻烦了。
|
4
cyberpoint OP @miao1007 这个我知道,没有去看源码,想知道一下大家的实现思路。
|
5
codehz 2020-12-16 14:39:42 +08:00
正常的正则表达式都无法处理这种递归的结构,.NET 的蜜汁正则倒是可以(
|