Немогли бы вы помочь с регулярным выражением
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,
что делает функция? |
Все в общем заменяет единичные апострофы на двойные(если они не в слове), а внутрення проверяет, совпадает ли регулярное выражение с тем что мне нужно и возвращает подходящую замену. Я только начал учить, потому много правил незнаю, просвещайте, мб делаю священные ошибки, каюсь(
|
return str.replace(/['|"]/g,function(char){ return char=="'"?'"':"'"; }); }; upd. по наименованию функции подумал, что нужно заменить кавычки... |
Только что поставил по два пробела, оно заработало, это мне возножно надо делать его, как я прочитал: "Не жадным" с помощью "?", если да, то как его применить? Или вообще в правилах написания кода моя функция выглядит совсем глупо и ее нужно переписать.
|
Да, но не все, только те что вне слов:) Но спасибо за помощь, твой метод интересен, я такого еще не прочитал) Немного забежал вперед)
|
IAmTrying,
не осилил ваших сообщений replaceBrackets("'vxcvcvcxv' 'sdasvsdfsdfdasd' 'dsdasdas', 'pizza!' 'dsdfsdfsdsds' aren't 'you', 'b' 'you'.?, 'df'. 'dfg' 'dgfe' 'dfgvc' 'vcxsdf' "); что на выходе хотите получить? |
Нужно сделать замену одинарных кавычек на двойные, те что в словах типа "aren't, don't" проигнорировать. Извиняюсь за сумбур.
|
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> |
А не нифига, а если там не слово, а строка попадается в кавычках, не срабатывает(
|
Часовой пояс GMT +3, время: 09:25. |