удалить части строки с помощью JavaScript - PullRequest
3 голосов
/ 24 ноября 2010

У меня несколько странная ситуация, когда мне нужно исправить ошибку на веб-сайте, когда при создании строки (динамически) она добавляет 5 пробелов перед строкой и 5 пробелов после строки. Очевидно, что лучшее, что можно сделать, это исправить внутренний код и избавиться от этих пробелов ... Короче говоря, я не могу, и мне приходится делать это с помощью JavaScript. Я не совсем уверен, как это сделать, но об этом я думал

<!--Dynamically generated string including spaces added in backend-->
<span id="balance">     245.34     </span>

Моя идея заключалась в том, чтобы сделать следующее с javascript

function removespace()
{
  var oldString = document.getElementById('balance');
  var newString = (THIS IS WHERE I AM STUCK... I NEED TO REMOVE THE SPACES);
  document.getElementByID('balance').innerHTML = newString;
}

У кого-нибудь есть предложения? Спасибо!

ТАКЖЕ ЗАБЫЛИ: Я не могу использовать библиотеки javascript, такие как prototype или jquery.

Редактировать: у меня это пока что ... но, похоже, оно не работает:

<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>

вот решение, которое я использовал ... Я закончил его, прежде чем увидел другие обновления ... но все были очень полезны

function trim(stringToTrim) {
return stringToTrim.replace(/^\s+|\s+$/g,"");
 }
 var oldString = document.getElementById('balance').innerHTML;
 var newString = trim(oldString);
 document.getElementById('balance').innerHTML = newString;

Ответы [ 6 ]

8 голосов
/ 24 ноября 2010

К сожалению, JavaScript не имеет функции trim(). Но вы можете бросить свой собственный:

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

и затем сделайте:

var newString = oldString.trim ();

вышеупомянутая функция взята из этого сайта (первый результат в Google для "javascript trim")

изменить (на основе вашего обновления вашего вопроса и комментариев):

изменение

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

до

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

и изменить

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

до

document.getElementById('balance').innerHTML = newString; // notice the lower case d

и вам нужно вызвать функцию removespace в какой-то момент (но я уверен, что вы уже это делаете):)

0 голосов
/ 24 ноября 2010

Вы пытаетесь что-то вроде этого

str.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, "");
0 голосов
/ 24 ноября 2010

Если баланс должен быть удвоен, вы можете преобразовать его в строку:

var c = '1234';
d = c * 1;

, а затем вернуться к строке, если необходимо:

d = c.toString();
0 голосов
/ 24 ноября 2010

с jQuery это просто:

var newStr = jQuery.trim(oldStr);
0 голосов
/ 24 ноября 2010

используйте trim () для удаления всех пробелов

var newString = oldString.trim ();

или используйте replace для замены пробелов пустой строкой:

var newString = oldString.replace ("", "");

0 голосов
/ 24 ноября 2010

Пишу из моей головы здесь.

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

Что-то в этом роде?

Edit: да, только мой первый пробел удален, поэтому я украл пробел из ответа номер 1:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...