下面的代码只是将“”替换为空格,然后将结果字符串与实际文本进行比较,但结果始终为“不等于”,因为在替换函数调用后变量文本总是占用一个空格。控制台日志显示文本和内容的相同值;但在比较时它给出了错误
<!DOCTYPE html>
<html>
<head></head>
<body>
<p id="result"></p>
<br><br>
<p id="html"></p>
<br>
<p id="content"></p>
<script>
var text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tortor risus, pharetra eu laoreet at, rhoncus quis ipsum. Mauris dictum orci sed libero pretium sollicitudin".replace(/ /gi, ' ');
var content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tortor risus, pharetra eu laoreet at, rhoncus quis ipsum. Mauris dictum orci sed libero pretium sollicitudin";
console.log(text);
console.log(content);
var result = "";
if (text == content) {
result = "Equal";
} else {
result = "Not Equal";
}
document.getElementById("result").innerHTML = result;
document.getElementById("html").innerHTML = text;
document.getElementById("content").innerHTML = content;
</script>
</body>
</html>
当你在字符串中使用
时,它会被字面解析为那些字符。相反,如果你想要一个不间断的空间,你应该使用\xa0
字符,这是一个不间断的空格字符。
在声明文本变量后不要执行此.replace(/ /gi, ' ');
。 Istead,在这里做
var result = "";
if (text.replace(/ /gi, ' ') == content) {
result = "Equal";
} else {
result = "Not Equal";
}