是否存在替换方法无法从字符串中删除空格的情况

Is there any case in which replace method fails to remove white space from the string?

本文关键字:删除 空格 情况 字符串 替换 存在 方法 是否      更新时间:2023-09-26

看下面的问题:

在 javascript 中删除字符串内的空格 [已关闭]

根据接受的答案string.replace(" ","")将删除所有空格

但就我而言,我有以下字符串:

var ctr = " #d1 { width: 100px ; height: 100px ; background-color: #000 ; opacity: 1 ; margin-left : 0px ; } "

现在我尝试替换所有多余的空格:

 var ctrWithNoWhiteSpaces = ctr.replace(" ", ""); //returns spaces full string 

function s(){
var ctr = " #d1 {       width: 100px ; height: 100px ; background-color: #000 ; opacity: 1 ; margin-left : 0px ; } ";
  
  alert(ctr);
  
  ctr = ctr.replace(" ", "");
  
  alert(ctr);
}
<button onclick="s()">click</button>

我不知道为什么它对我不起作用?
或者这是替换方法无法从字符串中删除空格的情况之一?

replace() 只替换第一次出现。以下是替换所有匹配项的一种方法:

如何替换 JavaScript 中出现的所有字符串?

通过传递全局修饰符来尝试使用正则表达式'g

function s(){
  var ctr = " #d1 {       width: 100px ; height: 100px ; background-color: #000 ; opacity: 1 ; margin-left : 0px ; } ";            
  
  ctr = ctr.replace(/'s/g, ""); // 's means whitespace      
  alert(ctr);
}
<button onclick="s()">click</button>

答案是否定的...

尝试:

function s(){
var str = " sanm sai s dj  k df  ";
str = String(str).replace(" ", "");
  
  alert(str);
  }
<button onclick="s();">click </button>

一个非常简单的答案是使用:

stringName.replace(/ /g, "")

这将替换所有出现的空格。但是,所有空格并不是严格意义上的所有空格,因此对于所有空格,您可以使用:

stringName.replace(/'s/g, "")