Правильно ли я составил replace(regexp)? Можно ли упростить? 
		
		
		
		
// цель: получить строку со словами разделенными одним пробелом без пробелов в начале и конце строки
var reg = str.replace(/[\.\,\;\:\?\!\"\'\(\)\+\-\№\%\#\@\$\[\]\{\}\~\^\&\*\/\\\_\|\<\>]/g, " "); // заменить все символы на пробелы (всё экранировал на всякий случай), исключение [^A-Z] не использовал, т.к. планирую сделать несколько язков помимо русского и английского 
reg = reg.replace(/\s+/g, " "); // все пробелы ужать до одного
reg = reg.replace(/^\s|\s$/g, ""); // обрезать пробелы в начале и в конце строки
Спасибо | 
	
		
 Momon, 
	получить массив слов с помощью match и вашей первой regexp разбить пробелом - всё  | 
	
		
 Momon, ты думаешь кроме этих символов, которые ты заменяешь на пробелы, других не существует? как бы не так, их ооочень много :D  вообще подход неверный надо искать которые нужны и не наоборот. Типа так: 
	
str = str.match(/[a-z0-9]+/ig);
str = (str) ? str.join(' ') : '';
В [...] клади нужные языки.  | 
	
		
 рони, 
	Извините, я не совсем понял как я получу массив слов своим первым regexp и match: 
var reg = str.match(/[\.\,\;\:\?\!\"\'\(\)\+\-\№\%\#\@\$\[\]\{\}\~\^\&\*\/\\\_\|\<\>]/g)
Ведь оно же наоборот вернёт массив символов, которые мне не нужны.  | 
	
		
 Momon, 
	примерно так ... но Rise, показал более верное решение 
var str = "на пробелы (всё        экранировал на всякий случай),          исключение [^A-Z] не использовал, т.к. планирую сделать несколько язков "
var reg = /[^\.\,\;\:\?\!\"\'\(\)\+\-\№\%\#\@\$\[\]\{\}\~\^\&\*\/\\\_\|\<\>\s]+/g;
alert(str.match(reg).join(' '));
alert(/^\s|\s$|\s{2,}/.test(str.match(reg).join(' ')))
 | 
	
		
 а если так: /\b\w\b/g 
	 | 
	
		
 рони, 
	Спасибо за помощь, но пробелы между словами всё равно придётся ужимать до одного, а пробелы по концам строки обрезать. В итоге те же три строчки кода. По поводу метода предложенного Rise, я с ним полностью согласен. Но насколько я понял для позитивного подхода (т.е. для того чтобы вынимать из строки сами слова на разных языках) нужна либо внешняя библиотека, либо писать что то вроде такого монстра: [^[a-zA-Z\-_ ’'‘ÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸſßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞȘŢȚŦŲƯY̨Ƴąɓçđɗęħįƙłøơşșţțŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖ ÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿʼNŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠ Œĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞȘṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗſśŝšşșṣßťţṭŧþúùûüǔ ŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ] В моем случае нет строгой необходимости удалять вообще все символы из строки, это всего лишь предосторожность, поэтому я просто указал все символы с клавиатуры, которые пользователь возможно захочет использовать для отделения слов вместо пробелов - запятые, тире, скобочки и т.д.  | 
	
		
 depp, 
	\w и \b к сожалению это только латинский алфавит. Но спасибо за помощь!  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Например по-гречески (используется диапазон 0370 до 03FF): 
var κείμενο = "Οι λίγες στιγμές!!!  θα πρέπει να ανοίξετε τον υπολογιστή μπορεί    να φαίνεται αιώνα .";
alert((κείμενο.match(/[\u0370-\u03FF]+/g) || []).join(' '));
Эτοτ regexp найдёт только слова с символами на русском, иврите, греческом и арабском: /[\u0370-\u03FF\u0400-\u04FF\u0590-\u05FF\u0600-\u06FF]+/g  | 
| Часовой пояс GMT +3, время: 03:56. |