gpt4 book ai didi

Javascript:在 HTML 表格中,如何从一列中选择部分文本(匹配某些正则表达式),并将其移动到下一列?

转载 作者:行者123 更新时间:2023-11-30 17:14:45 25 4
gpt4 key购买 nike

我有一个 HTML 表格,例如 2 列
第一个中的数据是这样的:(第二个是空的-我使用_作为“空”-)

1 (5%)  |  _  
2 (10%) | _
3 (15%) | _

其中,供引用:

<table id="my_table" >
<tbody>
<tr>
<td>1 (5%)</td>
<td></td>
</tr>
<tr>
<td>2 (10%)</td>
<td></td>
</tr>
<tr>
<td>3 (15%)</td>
<td></td>
</tr>
</tbody>
</table>

我想要(在 javascript -greasemonkey- 中)该列的每个单元格,
移动括号内的数字(=使用正则表达式匹配),
到它旁边的单元格,即第二列。
因此表格将被转换为

1 | 5%  
2 | 10%
3 | 15%

即:

<table id="my_table" >
<tbody>
<tr>
<td>1</td>
<td>5%</td>
</tr>
<tr>
<td>2</td>
<td>10%</td>
</tr>
<tr>
<td>3</td>
<td>15%</td>
</tr>
</tbody>
</table>

如何实现?

最佳答案

这里有一些简单的函数可以遍历表格的行并做你想做的事。 modTable 函数假设传递了一个 id,但它可能是对表的引用。

function modTable(id) {
var table = document.getElementById(id);
var row, rows = table.rows;
var cell, cells, text, t0, t1;

for (var i=0, iLen=rows.length; i<iLen; i++) {
row = rows[i];
text = getText(row.cells[0]);

// Get just leading digits
t0 = text.replace(/\D+.*/,'');

// Get just the part in brackets
t1 = text.replace(/(^.+\()|(\).*$)/g,'');

// Set new values
setText(row.cells[0], t0);
setText(row.cells[1], t1);
}
}

// Simple helpers for modern and older browsers
// Get textContent of an element
function getText(el) {
return el.textContent || el.innerText || '';
}

// Set the textContent of an element
function setText(el, text) {
if (typeof el.textContent == 'string') {
el.textContent = text;
} else if (typeof el.innerText == 'string') {
el.innerText = text;
}
}

可以通过按钮调用:

<button onclick="modTable('my_table');">Modify the table</button>

关于Javascript:在 HTML 表格中,如何从一列中选择部分文本(匹配某些正则表达式),并将其移动到下一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331773/

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