我已经阅读了这个关于 javascript trim 的问题,带有正则表达式的答案。
然后我希望 trim 删除Hello 和 World 之间 的内部空间。
function myFunction() {
alert("Hello World ".trim());
}
已编辑
为什么我会这么期待!?
废话!显然修剪不会删除内部空间!,只有前导和尾随的,这就是修剪的工作原理,那么这是一个非常错误的问题,我很抱歉。
我已经阅读了这个关于 javascript trim 的问题,带有正则表达式的答案。
然后我希望 trim 删除Hello 和 World 之间 的内部空间。
function myFunction() {
alert("Hello World ".trim());
}
已编辑
为什么我会这么期待!?
废话!显然修剪不会删除内部空间!,只有前导和尾随的,这就是修剪的工作原理,那么这是一个非常错误的问题,我很抱歉。
对于空格字符删除使用
"hello world".replace(/\s/g, "");
对于所有空白,请在下面的评论中使用 Rocket 的建议!
您可以使用
"Hello World ".replace(/\s+/g, '');
trim()
仅删除字符串上的尾随空格(链上的第一个和最后一个)。在这种情况下,此正则表达式更快,因为您可以同时删除一个或多个空格。
如果将替换空字符串更改为 '$',区别会变得更加清晰:
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
您可以将字符串替换方法与正则表达式一起使用。
"Hello World ".replace(/ /g, "");
replace() 方法返回一个新字符串,其中模式的部分或全部匹配被替换替换。模式可以是字符串或正则表达式
// - 正则表达式匹配空格
g - 全局标志;查找所有匹配项,而不是在第一个匹配项后停止
const str = "H e l l o World! ".replace(/ /g, "");
document.getElementById("greeting").innerText = str;
<p id="greeting"><p>
如果您只想替换空格,最好的方法是这样做:
let str = " H e l l o 1 5 9 ";
let onlyCharacters = str.replaceAll(" ", "");
// onlyCharacters = Hello159
我用str.replace(/\s/g, "");
了很多,但它不适用于所有浏览器,例如它在 android 的 dadduckgo 中不起作用,在 android webview 中也不起作用。
您可以使用递归解决方案:
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 ? "))