Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.04.2010, 18:25
Новичок на форуме
Отправить личное сообщение для 35e8 Посмотреть профиль Найти все сообщения от 35e8
 
Регистрация: 22.04.2010
Сообщений: 1

Замена символоа табуляции на пробелы.
Добрый день. Мучаюсь вот с такой задачкой, нужно заменить символ табуляции на странице на несколько связанных пробелов. Вот такой код работает в 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>

Последний раз редактировалось 35e8, 22.04.2010 в 19:22.
Ответить с цитированием
  #2 (permalink)  
Старый 22.04.2010, 19:28
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

А зачем?
<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>


И Ваши табы в целости и сохранности.
Ответить с цитированием
  #3 (permalink)  
Старый 07.05.2010, 19:55
Интересующийся
Отправить личное сообщение для assessor Посмотреть профиль Найти все сообщения от assessor
 
Регистрация: 07.01.2010
Сообщений: 13

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

Заранее спасибо.
Ответить с цитированием
  #4 (permalink)  
Старый 07.05.2010, 20:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

assessor,
любое количество пробелов на один чтоли?
var str = '111  222   333    444      555                  666';
alert(str.replace(/\s+/g, ' '));
Ответить с цитированием
  #5 (permalink)  
Старый 07.05.2010, 20:02
Интересующийся
Отправить личное сообщение для assessor Посмотреть профиль Найти все сообщения от assessor
 
Регистрация: 07.01.2010
Сообщений: 13

Да, нужно, чтобы был один пробел между словами в переменной input
Ответить с цитированием
  #6 (permalink)  
Старый 07.05.2010, 20:09
Интересующийся
Отправить личное сообщение для assessor Посмотреть профиль Найти все сообщения от assessor
 
Регистрация: 07.01.2010
Сообщений: 13

Kolyaj, спасибо, огромное. В регулярных выражения не разбираюсь. Не успел руку с клавиатуры убрать, а Вы уже решение дали. Спасибо громадное.
Ответить с цитированием
  #7 (permalink)  
Старый 07.05.2010, 20:14
Интересующийся
Отправить личное сообщение для assessor Посмотреть профиль Найти все сообщения от assessor
 
Регистрация: 07.01.2010
Сообщений: 13

Kolyaj, данная версия убирает "перевод каретки". И отдельные строки соединяются в одну. Как не делать этого?
Ответить с цитированием
  #8 (permalink)  
Старый 07.05.2010, 20:26
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Исключить CR(LF) из пробельных символов? Как-то так:
var str = '111  \n222   \n333    \n444      555                  666';
alert(str.replace(/[^\S\r\n]+/g, ' '));
Ответить с цитированием
  #9 (permalink)  
Старый 07.05.2010, 20:31
Интересующийся
Отправить личное сообщение для assessor Посмотреть профиль Найти все сообщения от assessor
 
Регистрация: 07.01.2010
Сообщений: 13

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

Последний раз редактировалось assessor, 07.05.2010 в 20:33.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск