Немогли бы вы помочь с регулярным выражением
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, время: 17:59. |