替换“”(空格)不起作用

时间:2013-04-25 14:37:37

标签: javascript html

<!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意味着它没有)

发生了什么事?请指教

4 个答案:

答案 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, ''));

这完全有用!!!!!!

http://jsfiddle.net/ncubica/FBxy2/