【发布时间】:2016-05-07 01:12:27
【问题描述】:
我有一个看起来像这样的字符串
16427171479924442928230863465674813919123162824586<br>17866458359124566529476545682848912883142607690042<br>2421902671055626321111109370544217506941658960408<br>07198403850962455444362981230987879927244284909188<br>
它实际上是一个没有换行符的网格(只有<br>,没有实际的换行符 (\n))
16427171479924442928230863465674813919123162824586<br>
17866458359124566529476545682848912883142607690042<br>
24219022671055626321111109370544217506941658960408<br>
07198403850962455444362981230987879927244284909188<br>
我想加粗这个网格的某个部分,每次都会改变,对于这个例子,假设我想加粗 8617。(这个数字可能更长并且可以拉伸多条线,我的实际网格要大得多)
我希望它看起来像这样:
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
我试过用这个(maxStr是我要替换的数字串)
gridString.replace(maxStr, "<strong>" + maxStr + "</strong>")
但这不起作用,因为字符串中有<br>,所以我实际上必须替换的字符串是86<br>17
我的问题是:如何用粗体版本替换跨越多行的数字的特定部分,同时将 <br> 保留在我需要的位置。
JSFiddle 说明了我的问题: https://jsfiddle.net/5d21c2r3/
旁注:我尝试了一个解决方案,我从网格中删除了所有 <br>,然后替换了文本,然后每 50 个字符重新添加 <br>,但这也不起作用,因为 <strong> 和</strong> 最终添加了很多字符。
【问题讨论】:
-
要替换时的数据在哪里?它已经在 DOM 中了吗?它是您应用程序中的字符串吗?其他地方?
-
它是一个变量中的字符串,如果你想确切地看到代码的样子,你可以在 jsfiddle 中查看
-
我可能只是编写一个快速解析器,它接收要定位的数字并一次手动搜索一个文本。这样它就可以自动越过它可能找到的任何
<br>。
标签: javascript jquery regex