gpt4 book ai didi

javascript - 对每条条件语句进行分组

转载 作者:行者123 更新时间:2023-11-28 01:59:53 25 4
gpt4 key购买 nike

如何将每个条件 stmt 分组在 if 括号内。假设我有一条来自 contenteditable div 的文本。这不仅仅是语法突出显示,我将在代码中稍后使用换行文本进行处理。

text = if ( x==1 && (x>2 || (!x>2 || x<=0)) )

我希望它们能够相应地分组并存储在这样的数组中

condFragment[0]=('x==1 && (x>2 || (!x>2 || x<=0))');
condFragment[1]=('x==1');
condFragment[2]=('(x>2 || (!x>2 || x<=0))');
condFragment[3]=('x>2');
condFragment[4]=('(!x>2 || x<=0)');
condFragment[5]=('!x>2');
condFragment[6]=('x>2');
condFragment[7]=('x<=0');

从此:

<div id="board">
<div>int main(){</div>
<div></div>
<div>if(x==1 && !x>2)</div>
<div>statement;</div>
<div>while(!x>5){</div>
<div>statement;}</div>
<div>}</div>
</div>

这就是我想通过使用 condFragment 内容实现的目标

<div id="board">
<div>int main(){</div>
<div></div>
<div>
if(<span class="frag"><span class="frag">x==1</span> &&
<span class="frag">!<span class="frag">x>2</span></span></span>)
</div>
<div>statement;</div>
<div>while(!x>5){</div>
<div>statement;}</div>
<div>}</div>
</div>

更新

我根据文本解决这个问题的想法是:

  1. 搜索&& || !从左到右
  2. 如果找到一个,则获取indexOF(&&或||或!)
  3. 如果找到的 && 的左侧被括号包围,则将其从那里切片到 && 的索引
  4. 如果 && 的右侧是左括号,则在 && 之后将其切片,直到找到的第一个(第二个)

但是我怎么知道那些是我应该切片的地方?

最佳答案

在这种情况下,您最好拥有一个完整的 JavaScript 解析器。

看看https://github.com/mishoo/UglifyJS .

该项目包含一个完整的 JS 解析器。

关于javascript - 对每条条件语句进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18580477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com