Javascript для удаления пробелов из значения текстового поля - PullRequest
5 голосов
/ 18 октября 2010

Я много раз искал это и не могу найти конкретный пример того, что я пытаюсь сделать.По сути, я хочу получить значение текстового поля по имени текстового поля (не по идентификатору).Затем я хочу удалить ВСЕ пробелы, не только начальные или конечные, но и пробелы в тексте.Например, для этого HTML-кода:

<INPUT style="TEXT-ALIGN: right;" onkeyup="fieldEdit();" onchange="fieldChange();" NAME="10010input" VALUE="4 376,73" readonly >

У меня есть этот JavaScript:

var val = document.CashSheet.elements["10010input"].value; 
val2 = val.replace(<someregex>, '');
alert(val2);

Но я пробовал много доступных выражений регулярных выражений, которые удаляют все пробелы, но все, кажется, только удалитьначальные и конечные пробелы, например, значение выше 4 376,73 должно читаться как 4376,73 в предупреждении выше, но это не так.После изучения этого обычного регулярного выражения для удаления пробелов из текстового поля содержимое не работает, и я считаю, что это потому, что оно заполняется в польских локализованных настройках на веб-сервере.То, что \ u char / regex exp мне нужно записать для «польского пространства», так сказать, в ascii оно достигает 20, но регулярное выражение, которое большинство людей предлагают для пробелов, не захватывает его.

Ответы [ 7 ]

8 голосов
/ 18 октября 2010

Вы можете использовать document.getElementsByName, чтобы получить элемент без необходимости проходить через форму, при условии, что ни один другой элемент на странице не имеет такого же имени.Чтобы заменить все пробелы, просто используйте регулярное выражение с глобальным флагом, установленным в методе replace() значения элемента:

var el = document.getElementsByName("10010input")[0];
var val = el.value.replace(/\s/g, "");
alert(val);
6 голосов
/ 18 октября 2010

Вам нужно «обобщить» то регулярное выражение, которое вы используете, чтобы оно применялось ко всем совпадениям, а не только к первому.Вот так:

val = val.replace(/\s/g, '')

Обратите внимание на «g», который изменяет регулярное выражение, чтобы оно стало «общим».

3 голосов
/ 06 февраля 2013

Другой, более jQuery'ish вариант:

$(".stripspaces").keyup(function() {
    $(this).val($(this).val().replace(/\s/g, ""));
});
3 голосов
/ 19 ноября 2010

Вот функция, которую я использую для замены пробелов.

function removeSpaces(val) {
   return val.split(' ').join('');
}
2 голосов
/ 11 февраля 2019

Попробуйте: - Вы можете попробовать написать или скопировать любую строку, включая пробелы, она удаляется автоматически.

/* Not Allow Spcace Type in textbox */
function AvoidSpace(event) {
    var k = event ? event.which : window.event.keyCode;
    if (k == 32) return false;
}

/* Remove Blank Space Automatically Before, After & middle of String */

function removeSpaces(string) {
 return string.split(' ').join('');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form>
<input placeholder="Enter Your Text" type="text" onkeypress="return AvoidSpace(event);" onblur="this.value=removeSpaces(this.value);">


</form>
2 голосов
/ 29 сентября 2015

Попробуйте

<script language="JavaScript">
function RWS(str){
  return str.replace(/^\s+/,"").replace(/\s+$/,"").replace(/\s+/g," ");
}
</script>

<form name=f1ex>
<textarea name="t2" rows="5" onChange="this.value=RWS(this.value)"></textarea>
</form>
0 голосов
/ 19 октября 2010

Вы можете использовать этот метод jQuery http://api.jquery.com/jQuery.trim/
val = $.trim(val); ИЛИ val = jQuery.trim(val);

...