从文本中删除所有空格

时间:2011-07-08 10:33:10

标签: javascript jquery

  

可能重复:
  Replace all spaces in a string with '+'

$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");

这是我的代码中的一个片段。我想在获取另一个ID的文本属性后向ID添加一个类。这个问题,是持有我需要的文本的ID,包含字母之间的间隙。

我想删除空白区域。我尝试了TRIM()REPLACE(),但这只是部分有效。 REPLACE()仅删除第一个空格。

8 个答案:

答案 0 :(得分:1106)

你必须告诉replace()重复正则表达式:

.replace(/ /g,'')

g 字符表示在整个字符串中重复搜索。阅读此内容以及JavaScript here中提供的其他RegEx修饰符。

如果要匹配所有空格,而不仅仅是文字空格字符,请改用\s

.replace(/\s/g,'')

答案 1 :(得分:278)

.replace(/\s+/, "") 

将仅替换第一个空格,这包括空格,制表符和新行。

要替换字符串中的所有空格,您需要使用全局模式

.replace(/\s/g, "")

答案 2 :(得分:7)

如其他答案中所述,将String.prototype.replace与正则表达式结合使用无疑是最佳解决方案。

但是,仅出于娱乐目的,您还可以使用String.prototype.splitString.prototype.join从文本中删除所有空格:

const text = ' a b    c d e   f g   ';
const newText = text.split(/\s/).join('');

console.log(newText); // prints abcdefg

答案 3 :(得分:4)

用于删除空格的正则表达式

\s+

var str = "Visit Microsoft!";
var res = str.replace(/\s+/g, "");
console.log(res);

[ ]+

var str = "Visit Microsoft!";
var res = str.replace(/[ ]+/g, "");
console.log(res);

删除字符串开头的所有空白

^[ ]+

var str = "    Visit Microsoft!";
var res = str.replace(/^[ ]+/g, "");
console.log(res);

删除字符串末尾的所有空白

[ ]+$

var str = "Visit Microsoft!      ";
var res = str.replace(/[ ]+$/g, "");
console.log(res);

答案 4 :(得分:3)

现在您可以使用“ replaceAll”:

console.log(' a b    c d e   f g   '.replaceAll(' ',''));

将打印:

abcdefg

但不能在所有可能的浏览器中使用:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll

答案 5 :(得分:0)

使用replace(/\s+/g,'')

例如:

const stripped = '    My String With A    Lot Whitespace  '.replace(/\s+/g, '')// 'MyStringWithALotWhitespace'

答案 6 :(得分:0)

使用.replace(/ \ s + / g,'')效果很好;

示例:

this.slug = removeAccent(this.slug).replace(/\s+/g,'');

答案 7 :(得分:-1)

function RemoveAllSpaces(ToRemove)
{
    let str = new String(ToRemove);
    while(str.includes(" "))
    {
        str = str.replace(" ", "");
    }
    return str;
}