Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更换&;nbsp;在Javascript中使用空格?_Javascript_Jquery - Fatal编程技术网

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

如何更换&;nbsp;在Javascript中使用空格?,javascript,jquery,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

我想用简单的空格替换代码中的
”。这些东西实际上并不相同

我该怎么做

这个代码不起作用

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>

可能发生的情况是,javascript中的文本在编译JS之前被解码。解决此问题的一种方法是将其放入单独的.js文件中,而不是在HTML中内联。另一种方法是尝试将其表示为
/&;nbsp/


(顺便说一句,我必须在这个文本框中输入“&;nbsp;”来显示上面的“”,我必须在这里用两倍的s来说明这一点。但我不必在
代码标记中这样做。这很奇怪。)

可能发生的情况是javascript中的文字在编译JS之前被解码。解决此问题的一种方法是将其放入单独的.js文件中,而不是在HTML中内联。另一种方法是尝试将其表示为
/&;nbsp/


(顺便说一句,我必须在这个文本框中输入“&;nbsp;”来显示上面的“”,我必须在这里用两个s来说明这一点。但我不必在
代码标记中这样做。这只是一个奇怪的现象。)

您的代码工作正常,请用
替换
”来测试这一点
或其他信函,了解如何更换nbsp

段落标记中的任意数量的空格仅计为一个空格

标记替换为
,您将看到您的替换已起作用

HTML:


您的代码工作正常,请通过将
替换为
”s“
或其他字母来测试此问题,以查看nbsp是如何被替换的

段落标记中的任意数量的空格仅计为一个空格

标记替换为
,您将看到您的替换已起作用

HTML:


如果查看源代码,在jQuery将非中断空间
替换为
”之后:


如果您查看源代码,在jQuery将非中断空间
替换为
之后:


在文本内容上使用正则表达式:


在文本内容上使用正则表达式:



这听起来像是XY问题。您需要这样做的具体原因是什么?这显然不是出于用户界面的原因,因为默认情况下,
被编码为空白。@Rorymcrossan这是我的特例。查看它的显示方式。请注意,这两列中的文本是相同的,但唯一的区别是第一列有“”而不是空格。这在您的Chrome中起作用。。。
将被替换为``并且列表中的每个项目都显示为有一个空格。这听起来像是XY问题。您需要这样做的具体原因是什么?这显然不是出于用户界面的原因,因为默认情况下,
被编码为空白。@Rorymcrossan这是我的特例。查看它的显示方式。请注意,这两列中的文本是相同的,但唯一的区别是第一列有“”而不是空格。这在您的Chrome中起作用。。。
将被替换为``并且列表中的每一项都显示为有一个空格。这是我的特定设置。查看它的显示方式。请注意,这两列中的文本是相同的,但唯一的区别是第一列有“”而不是空格Alexander Shmatko刚刚编辑了在编译JS之前,字符串文字将以什么方式“解码”呢?这并不是一个奇怪的现象。因此,允许在您的帖子中使用HTML,因此您需要避开它。但如果您将其格式化为代码,那么您就可以将其转义。我称之为一个奇怪的现象。@pherris:在xhtml中,如果您不使用显式cdata容器,或者如果js在html属性中内联,这是我特有的。查看它的显示方式。请注意,这两列中的文本是相同的,但唯一的区别是第一列有“”而不是空格Alexander Shmatko刚刚编辑了在编译JS之前,字符串文字将以什么方式“解码”呢?这并不是一个奇怪的现象。因此,允许在您的帖子中使用HTML,因此您需要避开它。但是如果您将其格式化为代码,那么您就可以将其转义。我称之为一种奇怪现象。@pherris:在xhtml中,如果您不使用显式cdata容器,或者如果js在html属性中内联,则会出现这种情况。显示字母时,空格仍然不可见。是的,因为段落标记将多个空格表示为单个空格@Roko C.Buljan的答案比我的好得多,请阅读!此外,请尝试我发布的JFiddle查看差异。显示字母时,空格保持不可见。是的,因为段落标记将多个空格表示为单个空格@Roko C.Buljan的答案比我的好得多,请阅读!另外,试试我发布的JFiddle,看看它们的区别。这绝对是一个有用的答案!非常感谢。我发现了有趣的事情。有两列文字填充,我使用CSS剪掉长文字,在特定行的末尾添加三个点。但这不是问题所在。问题是,在这两列中,我都写了相同的文本,但在第一列中,我用
nbsp
s分隔,在第二列中,我只写了空格,而不是
nbsp
s。看看他们是不是不一样@AlexanderShmatko因为
单词有些
变成了一个单词!这就是所谓的不间断空间:)这绝对是一个有用的答案!非常感谢。我发现了有趣的事情。有两列文字填充,我使用CSS剪掉长文字,在特定行的末尾添加三个点。但这不是问题所在。问题是,在这两列中,我都写了相同的文本,但在第一列中,我用
nbs进行了划分
$(document).ready(function() {
    $('p').each(function(){
      $(this).html($(this).html().replace(/&nbsp;/gi," "));
    });
});
<p>No Space</p>
<span>&nbsp;&nbsp;&nbsp;&nbsp;4 Spaces</span>
    <p>&nbsp;&nbsp;2 Spaces</p>
        <p>&nbsp;&nbsp;&nbsp;3 Spaces</p>
            <p>&nbsp;&nbsp;&nbsp;&nbsp;4 Spa     ces</p>
$(document).ready(function() {
    $('p').each(function(){
      $(this).html($(this).html().replace(/&nbsp;/gi,"s"));
    });
});
<p>No Space</p>
<p> 1 Space</p>
<p>  2 Spaces</p>
<p>   3 Spaces</p>
<p>    4 Spaces</p>
$(document).ready(function() {
  var re = new RegExp(String.fromCharCode(160), "gi");
  $('p').each(function(){
    $(this).html($(this)[0].textContent.replace(re, " "));
  });
});