协慌网

登录 贡献 社区

从文本中删除所有空格

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

这是我的代码的一部分。我想在获取另一个 ID 的 text 属性后向 ID 添加一个类。问题在于,持有我需要的文本的 ID 包含字母之间的空格。

我想删除空白。我已经尝试过TRIM()REPLACE()但这只能部分起作用。 REPLACE()仅删除第一个空格。

答案

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

.replace(/ /g,'')

g字符使其成为 “全局” 匹配项,这意味着它将在整个字符串中重复搜索。在此处阅读有关此内容以及 JavaScript 中可用的其他 RegEx 修饰符的信息。

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

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

如果您使用的是最新版本的 JavaScript,也可以使用.replaceAll ,但实际上没有任何理由使用您的特定用例,因为捕获所有空白都需要一个正则表达式,并且当将正则表达式与.replaceAll一起使用时,它必须成为全球性的,所以您最终会得到额外的输入:

.replaceAll(/\s/g,'')
.replace(/\s+/, "")

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

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

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

如其他答案中所述,将String.prototype.replace与 regex 一起使用无疑是最好的解决方案。

但是,只是为了好玩,您还可以使用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