高亮显示包含<br>以及重新格式化网格
Highlighting a specific area of a grid containing <br> and reformatting the grid
我有一个字符串,看起来像这个
16427171479924442928230863465674813919123162824586<br>17866458359124566529476545682848912883142607690042<br>2421902671055626321111109370544217506941658960408<br>07198403850962455444362981230987879927244284909188<br>
它实际上是一个没有换行符的网格(只有<br>
,没有实际的换行符(''n))
16427171479924442928230863465674813919123162824586<br>
17866458359124566529476545682848912883142607690042<br>
24219022671055626321111109370544217506941658960408<br>
07198403850962455444362981230987879927244284909188<br>
我想在这个网格的某个部分加上粗体,这个部分每次都可以更改,在这个例子中,我想加上8617。(这个数字可能更长,延伸多条线,我的实际网格要大得多)
我希望它看起来像这样:
16427171479924442928230863465674813919123162824586
1786645835912456652976545682848912883142607690042
24219022671055626321111109370544217506941658960408
0719840385099624554443629812309878779927244284909188
我试过使用这个(maxStr是我想替换的数字字符串)
gridString.replace(maxStr, "<strong>" + maxStr + "</strong>")
但这不起作用,因为字符串中有<br>
,所以我实际上必须替换的字符串是86<br>17
我的问题是:我如何用粗体替换跨越多行的数字的某一部分,同时将<br>
保留在我需要的地方。
JSFiddle说明我的问题:https://jsfiddle.net/5d21c2r3/
附带说明:我尝试了一种解决方案,从网格中删除所有<br>
,然后替换文本,然后每50个字符重新添加<br>
,但这也不起作用,因为<strong>
和</strong>
最终添加了很多字符。
您可以制作一个正则表达式,允许在任意数字之间选择<br>
:
var toReplace = "8617";
var regex = new RegExp("(" + toReplace.split("").join("(?:<br>)?") + ")")
document.write(gridString.replace(regex, "<strong>$1</strong>"))
请参阅更新的JS Fiddle。
解释
生成的正则表达式是/(8(?:<br>)?6(?:<br>)?1(?:<br>)?7)/
。CCD_ 11是非捕获组。?
之后意味着它是可选的—它可以出现零次或一次。开头的(
和结尾的)
是捕获组—它允许您稍后将匹配的子字符串用作CCD_ 15。
- 剑道网格jQuery动画()问题
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- jQuery中是否内置了任何字符串格式化函数
- 我可以更改剑道UI网格吗's的外键值
- jqGrid树网格问题
- 在Three.js中导出网格会提高性能吗
- 如何在剑道网格初始化后设置pageSizes
- 在threejs中使用纹理网格和线框网格
- 如何在可分组的剑道网格中设置空数据文本
- 如何在Angular UI网格中选择下一行
- ExtJS网格单元格编辑器,防止焦点松动问题
- 多维数据集网格未在指定的分区中绘制
- 光线投射从内部投射时不会碰到网格
- 高亮显示包含<br>以及重新格式化网格
- jq网格;以 JSON 格式提取的日期未显示在表中.也无法格式化日期
- 为光滑网格编写自定义格式化程序
- 剑道在网格中格式化数字
- jqgrid 自定义格式化程序:自定义格式化程序始终返回网格的最后一行.为什么
- 网格中的EXTJS日期字段未出现/格式化
- 动态剑道网格中值的格式化