能否自定义高亮

使用问题 · 528 次浏览
用户Npm4FuOYAgA 创建于 2023-08-20 15:00

有个需求是文本复制到文本窗口后,想高亮其中的类日期格式(如2023-08-08;2023年08月08日;2023年8月8日;20230808)和类数字的文本(如1.3141,234124.0,12,112,340.0)但是目前的高亮好像只能针对代码,这个是否能自定义高亮的规则呢,如使用多个正则表达式


回复内容
CL 2023-08-28 10:11
#1

终于找到了一个方法,将在1.39.11版本中支持。

不过需要使用控件原始的格式来定义,可以参考 https://github.com/icsharpcode/AvalonEdit/tree/master/ICSharpCode.AvalonEdit/Highlighting/Resources 里面的文件。 先了解一下这个格式,待版本发布后测试看看。


运营:秋风 2023-08-29 17:55
#3
if (floatingBox && floatingBox.querySelector("table")) {
    // 如果找到 table 元素,则删除
    floatingBox.querySelector("table").remove();
}

// 创建悬浮框元素
var floatingBox = document.createElement("div");
floatingBox.id = "floating-box";
floatingBox.style.position = "fixed";
floatingBox.style.bottom = "20px";
floatingBox.style.right = "20px";  // 调整为右侧对齐
floatingBox.style.backgroundColor = "#fff";
floatingBox.style.padding = "10px";
floatingBox.style.border = "1px solid #ccc";

// 创建表格元素
var table = document.createElement("table");
table.style.borderCollapse = "collapse";

// 创建表头行
var tableHeaderRow = document.createElement("tr");
var headers = ["时间", "监控价格", "类型", "当前价格"];
headers.forEach(function(header) {
  var th = document.createElement("th");
  th.textContent = header;
  th.style.border = "1px solid #ccc";
  tableHeaderRow.appendChild(th);
});
table.appendChild(tableHeaderRow);

// 创建每一行数据
var dataRows = [
  ["2023-05-01 10:28:47", "12.9", "券后", "7.9"],
  ["2023-05-01 11:04:01", "12.9", "直接售价", "12.9"],
  ["2023-05-01 12:03:50", "12.9", "直接售价", "12.9"],
  ["2023-05-01 13:03:53", "12.9", "直接售价", "12.9"],
  ["2023-05-01 14:03:51", "12.9", "直接售价", "12.9"]
];

dataRows.sort(function(a, b) {
  var timeA = new Date(a[0]);
  var timeB = new Date(b[0]);
  return timeB - timeA;
});

dataRows.forEach(function(rowData) {
  var tr = document.createElement("tr");
  rowData.forEach(function(cellData) {
    var td = document.createElement("td");
    td.textContent = cellData;
    td.style.border = "1px solid #ccc";
    tr.appendChild(td);
  });
  table.appendChild(tr);
});

// 将表格添加到悬浮框中
floatingBox.appendChild(table);

// 将悬浮框元素添加到页面中
document.body.appendChild(floatingBox);
运营:秋风 最后更新于 2023-08-30 10:26
运营:秋风 回复 运营:秋风 2023-08-29 18:01 :

如果你想用网页来计算或者是调用电脑数据,你可以直接把内容添加在网页中,不用Quicker的一些窗口。网页支持的格式更多,可以问问chagpt帮你布局,以上是js代码演示。

运营:秋风 最后更新于 2023-08-29 18:01
回复主贴