空间没有转换为JavaScript

问题描述 投票:-2回答:2

下面的代码只是将“”替换为空格,然后将结果字符串与实际文本进行比较,但结果始终为“不等于”,因为在替换函数调用后变量文本总是占用一个空格。控制台日志显示文本和内容的相同值;但在比较时它给出了错误

<!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&nbsp;&nbsp; amet, consectetur adipiscing elit. Sed tortor risus, pharetra eu laoreet at, rhoncus quis ipsum. Mauris dictum orci sed libero pretium sollicitudin".replace(/&nbsp;/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>
javascript html
2个回答
1
投票

当你在字符串中使用&nbsp;时,它会被字面解析为那些字符。相反,如果你想要一个不间断的空间,你应该使用\xa0字符,这是一个不间断的空格字符。


0
投票

在声明文本变量后不要执行此.replace(/&nbsp;/gi, ' ');。 Istead,在这里做

var result = "";
if (text.replace(/&nbsp;/gi, ' ') == content) {
    result = "Equal";
} else {
     result = "Not Equal";
}
© www.soinside.com 2019 - 2024. All rights reserved.