Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Удалить длинные пробелы... (https://javascript.ru/forum/misc/28381-udalit-dlinnye-probely.html)

PsScitalec 17.05.2012 13:05

Удалить длинные пробелы...
 
Добрый день.
function FindTelephone(txt) {
           var AllBlank = txt;
		   var regAllBlank = /\s+/g;
		   var saveAllBlank = AllBlank.replace(regAllBlank,'');// Удаляем пробелы
           Log.Write(1,'Текст без пробелов = '+saveAllBlank);
		   var str = saveAllBlank;
		   var regV = /\d{10}/g;   
		   var save = str.match(regV);
		   Log.Write(1,'FindTelephone = '+ save); 
		return save;
}


Не удаляет почему то длинные пробелы и пробелы после двоеточия.
Помогите разобраться пожалуйста.

Kolyaj 17.05.2012 13:10

Зачем вам столько лишних промежуточных переменных? Не понять же, что происходит.

PsScitalec 17.05.2012 13:52

function FindTelephone(txt) {           
		   var saveAllBlank = txt.replace(/\s+/g,'');// Удаляем пробелы
                   Log.Write(1,'Текст без пробелов = '+saveAllBlank); 	   
		   var save = saveAllBlank.match(/\d{10}/g);// Ищем 10-ти значный номер тлф
		   Log.Write(1,'FindTelephone = '+ save); 
		   return save;
}


Так коректно ?

Kolyaj 17.05.2012 13:58

Теперь где у вас что не удаляет?
alert('1       2        3:        4'.replace(/\s+/g, ''))

PsScitalec 17.05.2012 14:09

test

PsScitalec 17.05.2012 14:12

C &nbsp я так понял проблема.
Вот только такого вида
alert('1         3'.replace(/( )+|\s+/g, '')
отказывается работать с серверной JS насколько я понял((

nerv_ 17.05.2012 14:40

text.replace( /(?:\s| )+/g, '' )

PsScitalec 17.05.2012 16:10

Цитата:

Сообщение от nerv_ (Сообщение 174961)
text.replace( /(?:\s| )+/g, '' )

Все равно остаются пробелы(

9xakep 17.05.2012 16:27

Не понял, а этот вариант чем не годиться, вы просто скобку не там поставили:
alert('ФИО: Абрамов Евгений ВалериевичТелефон:  0 9 3          6 8 2 3 1 7 3 E-mail : abramov.evgenij84@gmail.comДата рождения: 02.04.1984г.Семейное положение:  не женатПол: жен. Образование: высшее      2001-2004 гг. Полтавский военный институт связи    Специальность: Системы и комплексы военной связи.      2004-2008 гг. Национальный авиационный университет     Специальность: Аппаратура радиосвязи, радиовещания и телевидения. Профессиональный  опыт: 01.06.2007 – 01.09.2007 гг. частный предприниматель              Установка, настройка антен спутниковой связи 03.12.2007 – 20.06.2008 ТОВ "Воля-Кабель-Сервис"              Техник-инспектор 14.07.2008 - 4.12.2009 ТОВ "Исеко Секъюрити Технолоджиз"              Инженер тех.поддержки (установка, программирование охранных систем CID и систем видеонаблюдения, сервисное обслуживание, проведение технических презентаций продуктов, консультации клиентов).      Личные качества:- ответственность- порядочность- пунктуальность- стремление к самообучению- способность работать в критических ситуациях '.replace(/( )+|\s+/g, '').match(/\d{10}/g)[0])

PsScitalec 17.05.2012 16:37

спс

PsScitalec 17.05.2012 16:47

почему не работает сам не пойму

PsScitalec 17.05.2012 17:15

Сорри дабл пост

9xakep 17.05.2012 20:29

А тебе надо, что бы удаляло, только длинные пробелы?
alert('Привет, меня зовут  Вася Пупкин   !'.replace(/\s{2,}/,' '))

PsScitalec 18.05.2012 10:20

Нет я хочу удалить все, для того чтобы найти телефон вида
(xxx) xx xx xxx
xxx xx xx xxx
xxx xx xx xxx
xxx-xx-xx-xxx

Скобки, пробелы и тире я понимаю как удалить,а вот длинные пробелы нет

Kolyaj 18.05.2012 11:16

Что такое длинный пробел?

person 19.05.2012 06:07

Цитата:

Сообщение от Kolyaj
Что такое длинный пробел?

Судя по наличию в коде не разрывных пробелов, наверно он.
Лет несколько назад такую проблему решил копированием этого пробела в регулярку (сам пробел, а не код!!!), то есть два пробела, обычный и этот.
Ещё есть смутные воспоминания о вопросах типа "как искать символьные объекты" регуляркой.
PsScitalec, попробуй к гуглу по приставать, может чего нароешь.

observer 19.05.2012 22:34

Цитата:

Сообщение от Kolyaj (Сообщение 175150)
Что такое длинный пробел?

Возможно, человек имеет в виду символ \u2003, но он уже и так входит в состав \s

\s == [\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u 2028\u2029\u3000]

observer 19.05.2012 22:49

Цитата:

Сообщение от PsScitalec (Сообщение 174986)
почему не работает сам не пойму

Человек, либо вы покажите всем файл input.txt с выводом результата, либо идите к гадалке.

Аналогично:
var saveAllBlank = txt.split(/\s+/).join("");

9xakep 19.05.2012 23:49

var str = 'asdfasdfsd dsafasdfav rgsrev aergzv(123) 12 12 123idfkjasefkdf'
var str2 = 'WERFREGW5EHGWRST123 12 12 123ADWEFAERGSERVFSDFVGATRHSRA4E'
var str3 = 'dsgretgrstgsrtgs123-12-12-123EQR4WEGWTRS5TGSR5FG'
function get_number(s) {
    return s.match(/(\(\d{3}\)(\s\d{2}){2}\s\d{3})|(\d{3}(\s\d{2}){2}\s\d{3})|(\d{3}(-\d{2}){2}-\d{3})/)[0]
}
alert(get_number(str))
alert(get_number(str2))
alert(get_number(str3))


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