javascript 如何删除字符串中重复白色?[duplicate]

a0zr77ik  于 2023-03-16  发布在  Java
关注(0)|答案(6)|浏览(115)

此问题在此处已有答案

11年前关闭了。

可能重复:

Replace multiple whitespaces with single whitespace in JavaScript string
我用过trim函数来删除句子开头和结尾白色。如果一个句子中单词之间的空格太多,有什么方法可以删除吗?
例如

"abc                  def. fds                            sdff."
tez616oj

tez616oj1#

尝试

"abc                  def. fds                            sdff."
 .replace(/\s+/g,' ')

"abc                  def. fds                            sdff."
     .split(/\s+/)
     .join(' ');

或使用allTrim字符串扩展名

String.prototype.allTrim = String.prototype.allTrim ||
     function(){
        return this.replace(/\s+/g,' ')
                   .replace(/^\s+|\s+$/,'');
     };
//usage:
alert(' too much whitespace     here   right?  '.allTrim());
   //=> "too much whitespace here right?"
4smxwvx5

4smxwvx52#

var str = 'asdads   adasd    adsd';
str = str.replace(/\s+/g, ' ');
cclgggtu

cclgggtu3#

您可以使用以下Javascript将多个连续空格修剪为一个空格:

var str = "abc def.  fds    sdff.";
str = str.replace(/\s+/g, " ");

如果你指的不是多个连续空格,那么请在你的问题中澄清你的意思。

zsohkypk

zsohkypk4#

我认为您要寻找的是JavaScript的string.replace()方法。
如果要删除所有空格,请使用以下命令:

"abc def. fds sdff.".replace(/\s/g, '');
Returns: "abcdef.fdssdff."

如果只想删除双空格,请用途:

"abc   def.  fds      sdff.".replace(/\s\s/g, ' ');
Returns: "abc def. fds sdff."

如果要在句点后保留空格,请用途:

"abc def. fds   sdff.".replace(/[^.]\s/g, '')
Returns: "abcdef. fdssdff."
xzlaal3s

xzlaal3s5#

请参考下面的代码部分,它在javascript中使用rejex来删除重复白色。

function trim(value) {
   var temp = value;
   var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
   if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
   var obj = / +/g;
   temp = temp.replace(obj, " ");
   if (temp == " ") { temp = ""; }
   return temp;
}
vh0rcniy

vh0rcniy6#

value.replace("  ", " ");

这应该可以做到,它只是将2白色替换为1个,直到您只得到1个空格。

相关问题