$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");
这是我的代码片段。我想在获取另一个 ID 的文本属性后向 ID 添加一个类。问题在于,包含我需要的文本的 ID 包含字母之间的间隙。
我想删除空格。我试过了TRIM()
,REPLACE()
但这只是部分有效。该REPLACE()
只删除第一个空间。
$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");
这是我的代码片段。我想在获取另一个 ID 的文本属性后向 ID 添加一个类。问题在于,包含我需要的文本的 ID 包含字母之间的间隙。
我想删除空格。我试过了TRIM()
,REPLACE()
但这只是部分有效。该REPLACE()
只删除第一个空间。
你必须告诉 replace() 重复正则表达式:
.replace(/ /g,'')
该摹性格使它成为“全球性”的比赛,这意味着它通过重复整个字符串搜索。在此处阅读有关此内容以及 JavaScript 中可用的其他 RegEx 修饰符。
如果要匹配所有空格,而不仅仅是文字空格字符,请\s
改用:
.replace(/\s/g,'')
.replaceAll
如果您使用的是足够新的 JavaScript 版本,您也可以使用,但对于您的特定用例,实际上没有任何理由,因为捕获所有空格需要一个正则表达式,并且当使用正则表达式 with 时.replaceAll
,它必须是全局的,所以你最终会得到额外的输入:
.replaceAll(/\s/g,'')
.replace(/\s+/, "")
将仅替换第一个空格,这包括空格、制表符和换行符。
要替换字符串中的所有空格,您需要使用全局模式
.replace(/\s/g, "")
现在你可以使用“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
String.prototype.replace
正如其他答案中提到的那样,使用正则表达式当然是最好的解决方案。
但是,为了好玩,您还可以使用String.prototype.split
and删除文本中的所有空格String.prototype.join
:
const text = ' a b c d e f g ';
const newText = text.split(/\s/).join('');
console.log(newText); // prints abcdefg
用于删除空格的正则表达式
\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);