 
			
				10.01.2018, 13:44
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.12.2017 
					
					
					
						Сообщений: 15
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Немогли бы вы помочь с регулярным выражением
			 
			
		
		
		
		
function replaceBrackets(text){
	var newSt = text.replace(/\' | \'|\'\,|\'\./g, function(match){
		if (match == " \'"){
			
			return " \"";
		} else if (match == "\' "){
			
			return "\" ";
		} else if (match == "\'\,"){
			
			return "\"\,";
		} else if (match == "\'\.") {
			
			return "\"\.";
		} else {
			console.log("Something wrong");
		}
});
	console.log(newSt);
};
replaceBrackets("'vxcvcvcxv' 'sdasvsdfsdfdasd' 'dsdasdas', 'pizza!' 'dsdfsdfsdsds' aren't 'you', 'b' 'you'.?, 'df'. 'dfg' 'dgfe' 'dfgvc' 'vcxsdf' ");
Вот результат ('vxcvcvcxv" 'sdasvsdfsdfdasd" 'dsdasdas", "pizza!" 'dsdfsdfsdsds" aren't "you", "b" 'you".?, "df". "dfg" 'dgfe" 'dfgvc" 'vcxsdf") 
 
Подскажите, почему не срабатывает первая замена ? И если я хочу вначале строки поменять, могу ли я испльзовать это выражение /^\'/. Если можно, то улучшите код сразу. Посмотрю как надо. Спасибо.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось IAmTrying, 10.01.2018 в 14:07.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2018, 13:48
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 IAmTrying, 
 что делает функция? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2018, 13:52
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.12.2017 
					
					
					
						Сообщений: 15
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Все в общем заменяет единичные апострофы на двойные(если они не в слове), а внутрення проверяет, совпадает ли регулярное выражение с тем что мне нужно и возвращает подходящую замену. Я только начал учить, потому много правил незнаю, просвещайте, мб делаю священные ошибки, каюсь( 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось IAmTrying, 10.01.2018 в 14:08.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2018, 13:57
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 function replaceBrackets(str){ 
	return str.replace(/['|"]/g,function(char){ 
		return char=="'"?'"':"'"; 
	}); 
}; 
 
upd. по наименованию функции подумал, что нужно заменить кавычки... 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Nexus, 10.01.2018 в 14:03.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2018, 13:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.12.2017 
					
					
					
						Сообщений: 15
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Только что поставил по два пробела, оно заработало, это мне возножно надо делать его, как я прочитал: "Не жадным" с помощью "?", если да, то как его применить? Или вообще в правилах написания кода моя функция выглядит совсем глупо и ее нужно переписать. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2018, 14:05
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.12.2017 
					
					
					
						Сообщений: 15
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Да, но не все, только те что вне слов   Но спасибо за помощь, твой метод интересен, я такого еще не прочитал) Немного забежал вперед)  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2018, 14:08
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		IAmTrying, 
 не осилил ваших сообщений 
 
replaceBrackets("'vxcvcvcxv' 'sdasvsdfsdfdasd' 'dsdasdas', 'pizza!' 'dsdfsdfsdsds' aren't 'you', 'b' 'you'.?, 'df'. 'dfg' 'dgfe' 'dfgvc' 'vcxsdf' ");
что на выходе хотите получить?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2018, 14:11
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.12.2017 
					
					
					
						Сообщений: 15
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Нужно сделать замену одинарных кавычек на двойные, те что в словах типа "aren't, don't" проигнорировать. Извиняюсь за сумбур. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2018, 14:33
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		IAmTrying, 
так?
 
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
</head>
<body>
  <script>
function replaceBrackets(text){
  return text.replace(/\'(\S*?)\'/g, '\"$1\"');
};
document.write(replaceBrackets("'vxcvcvcxv' 'sdasvsdfsdfdasd' 'dsdasdas', 'pizza!' 'dsdfsdfsdsds' aren't 'you', 'b' 'you'.?, 'df'. 'dfg' 'dgfe' 'dfgvc' 'vcxsdf' "));
  </script>
</body>
</html>
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось рони, 10.01.2018 в 14:49.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2018, 14:39
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.12.2017 
					
					
					
						Сообщений: 15
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 А не нифига, а если там не слово, а строка попадается в кавычках, не срабатывает( 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось IAmTrying, 10.01.2018 в 14:41.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |