我在我的代码中发现了一个错误:
此代码用突出显示的版本替换了一些常规文本:
var param = getCurrentParam();
var text = document.getElementById("mydiv").innerHTML;
document.getElementById("mydiv").innerHTML = text .replace(param, '<span style="background-color:yellow;">'+param+'</span>');
但这在这种情况下不起作用:
param = 'my text more text another line here';
“真实”html:
my text more text
another line here
因为有一个换行符(没有 br,只需在文本编辑器中输入 key ),参数只有空格,但实际上(在 html 中)文本有一些东西(我如此猜测):'\n'
;
所以替换不会起作用,因为可能有一个:“\n”,但它会搜索一个“”;
如何修复我的替换方法?
最佳答案
因为换行符在 html 中通常是不可见的,所以你可以完全去掉它们
var text = document.getElementById("mydiv").innerHTML.replace(/\r?\n/g, '');
关于JavaScript,无法检测换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10619594/