如何更换   在 Javascript 中使用空格?

Ale*_*tko 1 javascript jquery

我想更换 ' '用简单的空格“”我的代码。这些东西其实不太一样。

我怎样才能做到这一点?

提琴手

此代码将不起作用。

HTML

<p>No Space</p>
<p>&nbsp;1 Space</p>
    <p>&nbsp;&nbsp;2 Spaces</p>
        <p>&nbsp;&nbsp;&nbsp;3 Spaces</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp;4 Spaces</p>
Run Code Online (Sandbox Code Playgroud)

JS

$(document).ready(function() {
    $('p').each(function(){
      $(this).html($(this).html().replace(/&nbsp;/gi," "));
    });
});
Run Code Online (Sandbox Code Playgroud)

Rok*_*jan 5

如果您查看源代码,在 jQuery 将 NonBreakingSPaces 替换&nbsp;" "

<p>No Space</p>
<p> 1 Space</p>
<p>  2 Spaces</p>
<p>   3 Spaces</p>
<p>    4 Spaces</p>
Run Code Online (Sandbox Code Playgroud)

所以实际的空格字符是存在的!!.

为什么比空格不显示在文件中?

嵌套空格或文字字符串字符之前的空格之间的主要区别是浏览器吃掉它主要是防止草率编辑创建的内容间距不准确的旧规则但不仅如此!想象一下,您在未缩小(标准)HTML 代码中看到的所有空格和换行符都显示在结果中!你会被迫写oneliners。

因此,如果您不使用自动换行样式white-space: pre-wrap;或类似的元素<pre>,将保留您的文字空间,浏览器将为您清理呈现的内容空间。

<p>No Space</p>
<p> 1 Space</p>
<p>  2 Spaces</p>
<p>   3 Spaces</p>
<p>    4 Spaces</p>
Run Code Online (Sandbox Code Playgroud)

使用pre-wrap从字面上保留空间:

<pre>
<p>No Space</p>
<p> 1 Space</p>
<p>  2 Spaces</p>
<p>   3 Spaces</p>
<p>    4 Spaces</p>
</pre>
Run Code Online (Sandbox Code Playgroud)
body{ white-space: pre-wrap; }
Run Code Online (Sandbox Code Playgroud)

或者您将完全使用您要删除的内容: &nbsp;

https://en.wikipedia.org/wiki/Non-breaking_space
https://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language
https://developer.mozilla.org/en-US/docs/Web/CSS/white-空间
https://developer.mozilla.org/en-US/docs/Web/CSS/word-break https://developer.mozilla.org/en-US/docs/Web/CSS/word-wrap

  • 这绝对是有用的答案!谢谢! (2认同)