$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");
这是我的代码的一部分。我想在获取另一个ID的text属性后向ID添加一个类。问题在于,持有我需要的文本的ID包含字母之间的空格。
我希望删除空白。我已经尝试过TRIM()
,REPLACE()
但这只能部分起作用。该REPLACE()
只删除第一个空间。
$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");
这是我的代码的一部分。我想在获取另一个ID的text属性后向ID添加一个类。问题在于,持有我需要的文本的ID包含字母之间的空格。
我希望删除空白。我已经尝试过TRIM()
,REPLACE()
但这只能部分起作用。该REPLACE()
只删除第一个空间。
Answers:
您必须告诉replace()重复正则表达式:
.replace(/ /g,'')
该摹字是指通过重复整个字符串搜索。在此处阅读有关此内容以及JavaScript中可用的其他RegEx修饰符的信息。
如果要匹配所有空格,而不仅仅是文字空间字符,请\s
改用:
.replace(/\s/g,'')
x = " Many spaces before and after "
y = x.replace(/(^\s+|\s+$)/g, "")
该^\s
方法的空白字符串的开始,之后\s$
手段在空白的结束字符串,|
用于/或组中的,g
修饰符在上面的注释中进行了解释。要捕获一个或多个空白实例,您还需要+
在每一个之后加上量词\s
。
.replace(/\s+/, "")
仅替换第一个空格,其中包括空格,制表符和换行符。
要替换字符串中的所有空格,您需要使用全局模式
.replace(/\s/g, "")
+
不会添加任何东西,因为我们已经在使用g
(global)修饰符
String.prototype.replace
如其他答案中所述,与regex一起使用肯定是最好的解决方案。
但是,只是为了好玩,您还可以使用String.prototype.split
和删除文本中的所有空格String.prototype.join
:
const text = ' a b c d e f g ';
const newText = text.split(/\s/).join('');
console.log(newText); // prints abcdefg
.replace(/\s+/g, '')
它,对我来说完全可以。