JavaScript,无法检测到换行
我在代码中发现了一个bug: 此代码将一些常规文本替换为突出显示的版本:JavaScript,无法检测到换行,javascript,replace,Javascript,Replace,我在代码中发现了一个bug: 此代码将一些常规文本替换为突出显示的版本: var param = getCurrentParam(); var text = document.getElementById("mydiv").innerHTML; document.getElementById("mydiv").innerHTML = text .replace(param, '<span style="background-color:yellow;">'+param+'</s
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';
my text more text
another line here
“真实”html:
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';
my text more text
another line here
因为有一个换行符(无br,只需在文本编辑器中输入key即可),所以参数只有空格,但实际上(在html中)文本有一些内容(我猜是这样):“\n”
因此,替换将不起作用,因为可能有一个“\n”,但它会搜索一个“”
如何修复替换方法?因为换行符在html中通常不可见,所以您可以将其完全剥离
var text = document.getElementById("mydiv").innerHTML.replace(/\r?\n/g, '');
在替换参数文本之前,您可以用空格替换换行符,例如
text=text.replace(“\n”,”)代码>。这对您有用吗?更改getCurrentParam()如何?