我已阅读this question关于javascript修剪的问题,并附有正则表达式的答案。
然后我希望修剪删除Hello和World之间的内部空间。
function myFunction() {
alert("Hello World ".trim());
}
EDITED
我为什么要这么做!?
无意义!显然修剪不会移除内部空间!只有前导和尾随,这就是修剪工作的方式,那么这是一个非常错误的问题,我的道歉。
答案 0 :(得分:166)
使用
删除空格字符"hello world".replace(/\s/g, "");
所有空格的在下面的评论中使用Rocket的建议!
答案 1 :(得分:6)
可能是因为你忘了implement the solution in the accepted answer。这就是使trim()
工作的代码。
<强>更新强>
此答案仅适用于旧版浏览器。较新的浏览器显然本身支持trim()
。
答案 2 :(得分:3)
您可以使用
"Hello World ".replace(/\s+/g, '');
trim()
仅删除字符串上的尾随空格(链上的第一个和最后一个)。
在这种情况下,此regExp速度更快,因为您可以同时删除一个或多个空格。
如果将替换的空字符串更改为'$',则区别变得更加明显:
var string= ' Q W E R TY ';
console.log(string.replace(/\s/g, '$')); // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // #Q#W#E#R#TY#
性能比较-/\s+/g
更快。看到这里:http://jsperf.com/s-vs-s
答案 3 :(得分:2)
您可以将Strings replace方法与正则表达式结合使用。
"Hello World ".replace(/ /g, "");
replace()方法返回一个新的字符串,其中包含部分或全部匹配项 用替换替换的模式。模式可以是字符串或 RegExp
/ / -正则表达式匹配空格
g -全局标志;找到所有匹配项,而不是在第一个匹配项后停止
const str = "H e l l o World! ".replace(/ /g, "");
document.getElementById("greeting").innerText = str;
<p id="greeting"><p>
答案 4 :(得分:0)
您可以使用递归解决方案:
function removeWhitespaces(string, i = 0, res = "") {
if (i >= string.length)
return res
else
if (string[i] == " ")
return removeWhitespaces(string, i + 1, res)
else
return removeWhitespaces(string, i + 1, res += string[i])
}
console.log(removeWhitespaces(" Hello World, how is it going ? "))