convert-tmp.html 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>文本转换器</title>
  6. </head>
  7. <body>
  8. <div>
  9. <textarea id="input" rows="10" cols="50"></textarea>
  10. <button id="convert">转换</button>
  11. <textarea id="output" rows="10" cols="50"></textarea>
  12. </div>
  13. <script>
  14. const input = document.getElementById('input');
  15. const convertButton = document.getElementById('convert');
  16. const output = document.getElementById('output');
  17. function convert() {
  18. // 获取输入文本域的值
  19. const inputText = input.value.trim();
  20. // 对输入文本进行转换
  21. const convertedText = convertInput(inputText);
  22. // 将转换后的结果显示在输出文本域中
  23. output.value = convertedText;
  24. }
  25. function convertInput(inputText) {
  26. const input = JSON.parse(inputText);
  27. function convertNode(node) {
  28. if (node.conjunction) {
  29. return {
  30. relationship: node.conjunction,
  31. list: node.children.map(child => convertNode(child))
  32. };
  33. } else {
  34. return {
  35. key: node.left.field,
  36. op: node.op,
  37. value: node.right
  38. };
  39. }
  40. }
  41. let newVar = {
  42. relationship: input.conjunction,
  43. list: input.children.map(child => convertNode(child))
  44. };
  45. return JSON.stringify(newVar, null, 4);
  46. }
  47. // 绑定转换按钮的点击事件
  48. convertButton.addEventListener('click', convert);
  49. </script>
  50. </body>
  51. </html>