Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Замена символоа табуляции на пробелы. (https://javascript.ru/forum/css-html-internet-explorer/8967-zamena-simvoloa-tabulyacii-na-probely.html)

35e8 22.04.2010 18:25

Замена символоа табуляции на пробелы.
 
Добрый день. Мучаюсь вот с такой задачкой, нужно заменить символ табуляции на странице на несколько связанных пробелов. Вот такой код работает в Firefox, но не работает в IE 6 версии:

<html>
	<head>
		<title>Tab replase</title>
		<script type="text/javascript">
		<!--
			function replaseTab(){
			var expr = /\t/gi;
			var newTab = "&nbsp;&nbsp;&nbsp;&nbsp;";
			//alert ("Script is work");
			/* document.body.outerHTML = document.body.outerHTML.replace(expr, newTab);*/
			 //document.body.innerHTML = "test";
			 document.body.innerHTML = document.body.innerHTML.replace(new RegExp("	", "g"), newTab);
			}
			// -->
		</script>
	</head>
	<body>
	<p>
			if(s[0][i] == `MINP && s[1][i] == ``MINP && s[2][i] == ``MINP)<br>
			start <br>
				return_value[0] = 1;<br>
			end</p>
	<br>
	<input type="SUBMIT" name="b1"
	value="replase Tab" onclick="replaseTab ()">
	</body>
</html>

subzey 22.04.2010 19:28

А зачем?
<p style="white-space: pre">
            if(s[0][i] == `MINP && s[1][i] == ``MINP && s[2][i] == ``MINP)
	            start
	                return_value[0] = 1;
	            end
</p>


И Ваши табы в целости и сохранности.

assessor 07.05.2010 19:55

Здравствуйте. Есть строковая переменная. В ней есть 4 пробела и 3 пробела и 2 пробела между словами. Как в ней заменить наборы символов:
1) 4 пробела - на один пробел;
2) 3 пробела - на один пробел;
3) 2 пробела - на один пробел;

Заранее спасибо.

Kolyaj 07.05.2010 20:00

assessor,
любое количество пробелов на один чтоли?
var str = '111  222   333    444      555                  666';
alert(str.replace(/\s+/g, ' '));

assessor 07.05.2010 20:02

Да, нужно, чтобы был один пробел между словами в переменной input

assessor 07.05.2010 20:09

Kolyaj, спасибо, огромное. В регулярных выражения не разбираюсь. Не успел руку с клавиатуры убрать, а Вы уже решение дали. Спасибо громадное.

assessor 07.05.2010 20:14

Kolyaj, данная версия убирает "перевод каретки". И отдельные строки соединяются в одну. Как не делать этого?

e1f 07.05.2010 20:26

Исключить CR(LF) из пробельных символов? Как-то так:
var str = '111  \n222   \n333    \n444      555                  666';
alert(str.replace(/[^\S\r\n]+/g, ' '));

assessor 07.05.2010 20:31

e1f, спасибо, громадное. Всё замечательно работает. Приходилось копировать большой текст в Ворд и там менять. А сейчас "одной левой".


Часовой пояс GMT +3, время: 12:15.