<!DOCTYPE html>
<html>
<body>
<p id="demo">Click the button to locate where in the string a specifed value occurs.</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction()
{
var a =" picture";
a.replace(" ","");
var n=a.indexOf(" ");
document.getElementById("demo").innerHTML= n+a+n;
}
</script>
</body>
</html>
我想从上面示例中的“图片”中替换“”(空格)
但结果似乎不是替换为replace命令。
替换后结果应该是“-1picture-1”但它是“0 picture0”
图片前方有空格。 (我使用.indexOf(“”)来表示
变量中有空格或不是-1意味着它没有)
发生了什么事?请指教
答案 0 :(得分:9)
replace
不会修改字符串,返回修改后的字符串。
a = a.replace(" ","");
答案 1 :(得分:2)
使用String.trim()
删除尾随空格
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/Trim
在您的示例中,
var a = " picture";
a = a.trim();
...
答案 2 :(得分:0)
您需要将返回的值分配回a
var a =" picture";
a = a.replace(" ","");
编辑
还想把它抛出那里.replace(" ","")
只适用于空间的第一个实例,它甚至可能不在字符串的开头。如果您想修剪仅前导和尾随空格,请考虑以下事项:
var a =" picture";
a = a.replace(/^\s+|\s+$/g,"");
答案 3 :(得分:0)
我认为这可以很好地运作......
return str.replace(/\s+/g, '');
为什么我有一个downvote ???
alert("some #$%%&& person gave me a downvote!!".replace(/\s+/g, ''));
这完全有用!!!!!!