使用javascript删除字符串的部分

使用javascript删除字符串的部分,javascript,html,dom,string,Javascript,Html,Dom,String,我有一个奇怪的情况,我需要修复网站中的一个bug,当创建一个字符串(动态)时,它会在字符串前添加5个空格,在字符串后添加5个空格。显然,最好的办法是修复后端代码并去掉那些空格。。。长话短说,我不能,我必须用javascript来完成。我不太清楚该怎么做,但这正是我所想的 <!--Dynamically generated string including spaces added in backend--> <span id="balance"> 245.34

我有一个奇怪的情况,我需要修复网站中的一个bug,当创建一个字符串(动态)时,它会在字符串前添加5个空格,在字符串后添加5个空格。显然,最好的办法是修复后端代码并去掉那些空格。。。长话短说,我不能,我必须用javascript来完成。我不太清楚该怎么做,但这正是我所想的

<!--Dynamically generated string including spaces added in backend-->
<span id="balance">     245.34     </span>
有人有什么建议吗? 谢谢

还忘了提到:我不能使用prototype或jquery之类的javascript库

编辑:到目前为止我有这个。。。但它似乎不起作用:

<span id="balance">     $245.00     </span>

 <script>
 function removespace()
 {
   var oldString = document.getElementById('balance');
   var newString = oldString.trim ();
   document.getElementByID('balance').innerHTML = newString;
 }

 String.prototype.trim = function() {
 return this.replace(/^\s+|\s+$/g,"");
 }
 </script>

不幸的是,JavaScript没有
trim()
函数。但你可以自己滚:

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}
然后做:

var newString = oldString.trim ();
上述函数来自(谷歌上“javascript trim”的第一个结果)

编辑(根据您对问题和评论的更新):

改变

var oldString = document.getElementById('balance');

改变

document.getElementByID('balance').innerHTML = newString;


你必须在某个时候调用
removespace
函数(但我相信你已经这么做了):

在这里我脑子里写出来了

var elem = doc.getElementById('balance');
var oldString = elem.innerHTML;
elem.innerHTML=oldString.(/^\s+|\s+$/g,"")
像这样的

编辑:是的,只有我的第一个空格被删除,所以我从答案1中偷走了空格:)

使用trim()删除所有空格

var newString=oldString.trim()

或使用“替换”将空格替换为空字符串:


var newString=oldString.replace(“,”)

使用jQuery很简单:

var newStr = jQuery.trim(oldStr);

如果余额是双精度的,则可以将其转换为字符串:

var c = '1234';
d = c * 1;
然后返回字符串(如果需要):

d = c.toString();

你试试这样的吗

str.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, "");

这将删除所有空格,而不仅仅是尾随/前导空格。但在他的情况下可能不是问题。这只会删除第一次出现的空格。你说得对,Jan,我当时是从头开始写的,没有先想:)JavaScript没有
trim
功能。您的第二个解决方案将只替换space.var newString=oldString.replace(//g,“”)的第一个匹配项;//g(叶)=全部替换occurences@JanHančič:我不太清楚哪个浏览器实现了哪个版本的JavaScript或ECMAScript,但是
trim()
。他没有要求jQuery解决方案,他没有指定他不想使用jQuery,而jQuery也是JavaScript。这就是我刚刚要链接到的,所以+1:)。如果OP使用的是框架或工具包,请在其API中查找trim()方法,这样就不会重复代码!这是普通的JavaScript代码。不需要库(不要让
原型
迷惑你,它只是一个JavaScript特性,你可以通过它扩展现有的类)。。。它似乎不起作用。我不确定我是否实现了第一部分,为什么要删除空格?HTML将连续空格压缩为一。因此,呈现的HTML页面应该在值之前和之后只显示一个空格(但是ok,这可能仍然是不可取的),因为即使它在打破页面ok的设计之前或之后显示一个空格。我以为是这样,但我想核实一下。。。有时人们会制造问题,尽管他们没有任何问题;)
var newStr = jQuery.trim(oldStr);
var c = '1234';
d = c * 1;
d = c.toString();
str.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, "");