String replace Double quotes into curly brackets [duplicate]
This question already has an answer here:
Converting ″Straight Quotes″ to “Curly Quotes”
7 answers
How to replace all the Double quotes into both open and close curly brackets.
let str = "This" is my "new" key "string";
I tried with this regex
str.replace(/"/,'{').replace(/"/,'}')
But I end up with this:
{This} is my "new" key "string"
Here am getting only the first word is changing but i would like to change all the words.
I want the result to be:
{This} is my {new} key {string}
Thanks in advance.
javascript regex string replace
marked as duplicate by Wiktor Stribiżew
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Dec 23 '18 at 13:01
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
add a comment |
This question already has an answer here:
Converting ″Straight Quotes″ to “Curly Quotes”
7 answers
How to replace all the Double quotes into both open and close curly brackets.
let str = "This" is my "new" key "string";
I tried with this regex
str.replace(/"/,'{').replace(/"/,'}')
But I end up with this:
{This} is my "new" key "string"
Here am getting only the first word is changing but i would like to change all the words.
I want the result to be:
{This} is my {new} key {string}
Thanks in advance.
javascript regex string replace
marked as duplicate by Wiktor Stribiżew
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Dec 23 '18 at 13:01
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
1
I kind of agree with whoever voted to reopen this question. While the question about smart quotes is quite similar, someone looking for a simple way to replace symmetrical delimiters with balanced pairs would need to scroll quite far down to find the only answer that doesn't assume the input is English prose text there.
– Ilmari Karonen
Dec 23 '18 at 20:14
add a comment |
This question already has an answer here:
Converting ″Straight Quotes″ to “Curly Quotes”
7 answers
How to replace all the Double quotes into both open and close curly brackets.
let str = "This" is my "new" key "string";
I tried with this regex
str.replace(/"/,'{').replace(/"/,'}')
But I end up with this:
{This} is my "new" key "string"
Here am getting only the first word is changing but i would like to change all the words.
I want the result to be:
{This} is my {new} key {string}
Thanks in advance.
javascript regex string replace
This question already has an answer here:
Converting ″Straight Quotes″ to “Curly Quotes”
7 answers
How to replace all the Double quotes into both open and close curly brackets.
let str = "This" is my "new" key "string";
I tried with this regex
str.replace(/"/,'{').replace(/"/,'}')
But I end up with this:
{This} is my "new" key "string"
Here am getting only the first word is changing but i would like to change all the words.
I want the result to be:
{This} is my {new} key {string}
Thanks in advance.
This question already has an answer here:
Converting ″Straight Quotes″ to “Curly Quotes”
7 answers
javascript regex string replace
javascript regex string replace
edited Dec 23 '18 at 7:01
Jack Bashford
5,66131235
5,66131235
asked Dec 23 '18 at 6:36
YuvaMac
619
619
marked as duplicate by Wiktor Stribiżew
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Dec 23 '18 at 13:01
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
marked as duplicate by Wiktor Stribiżew
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Dec 23 '18 at 13:01
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
1
I kind of agree with whoever voted to reopen this question. While the question about smart quotes is quite similar, someone looking for a simple way to replace symmetrical delimiters with balanced pairs would need to scroll quite far down to find the only answer that doesn't assume the input is English prose text there.
– Ilmari Karonen
Dec 23 '18 at 20:14
add a comment |
1
I kind of agree with whoever voted to reopen this question. While the question about smart quotes is quite similar, someone looking for a simple way to replace symmetrical delimiters with balanced pairs would need to scroll quite far down to find the only answer that doesn't assume the input is English prose text there.
– Ilmari Karonen
Dec 23 '18 at 20:14
1
1
I kind of agree with whoever voted to reopen this question. While the question about smart quotes is quite similar, someone looking for a simple way to replace symmetrical delimiters with balanced pairs would need to scroll quite far down to find the only answer that doesn't assume the input is English prose text there.
– Ilmari Karonen
Dec 23 '18 at 20:14
I kind of agree with whoever voted to reopen this question. While the question about smart quotes is quite similar, someone looking for a simple way to replace symmetrical delimiters with balanced pairs would need to scroll quite far down to find the only answer that doesn't assume the input is English prose text there.
– Ilmari Karonen
Dec 23 '18 at 20:14
add a comment |
4 Answers
4
active
oldest
votes
Try using a global regex and use capture groups:
let str = '"This" is my "new" key "string"';
str = str.replace(/"([^"]*)"/g, '{$1}');
console.log(str);
The "([^"]*)"
regex captures a "
, followed by 0 or more things that aren't another "
, and a closing "
. The replacement uses $1
as a reference for the things that were wrapped in quotes.
add a comment |
Your code currently is only working for the first occurrence of each {
and }
. The easiest way to fix this would be to loop while there is still a "
in str
:
let str = '"This" is my "new" key "string"';
while (str.includes('"')) {
str = str.replace(/"/,'{').replace(/"/,'}');
}
console.log(str);
add a comment |
Try like this
str.replace(/"(.*?)"/g, "{$1}")
we need to use g-gobal flag
. Here capturing string between double quotes "", then replace with matched string curly braces
add a comment |
A very simple way to do that is to iterate over string as an array and every time it encounters character "
replace it either by {
or by }
repeatedly.
let str = '"This" is my "new" key "string"';
let strArray = str.split("");
let open = true;
for (let i = 0; i < strArray.length; ++i) {
if (strArray[i] == '"') {
if (open === true) {
strArray[i] = '{';
}
else {
strArray[i] = '}';
}
open = (open == true) ? false : true;
}
}
str = strArray.join("");
console.log(str)
add a comment |
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try using a global regex and use capture groups:
let str = '"This" is my "new" key "string"';
str = str.replace(/"([^"]*)"/g, '{$1}');
console.log(str);
The "([^"]*)"
regex captures a "
, followed by 0 or more things that aren't another "
, and a closing "
. The replacement uses $1
as a reference for the things that were wrapped in quotes.
add a comment |
Try using a global regex and use capture groups:
let str = '"This" is my "new" key "string"';
str = str.replace(/"([^"]*)"/g, '{$1}');
console.log(str);
The "([^"]*)"
regex captures a "
, followed by 0 or more things that aren't another "
, and a closing "
. The replacement uses $1
as a reference for the things that were wrapped in quotes.
add a comment |
Try using a global regex and use capture groups:
let str = '"This" is my "new" key "string"';
str = str.replace(/"([^"]*)"/g, '{$1}');
console.log(str);
The "([^"]*)"
regex captures a "
, followed by 0 or more things that aren't another "
, and a closing "
. The replacement uses $1
as a reference for the things that were wrapped in quotes.
Try using a global regex and use capture groups:
let str = '"This" is my "new" key "string"';
str = str.replace(/"([^"]*)"/g, '{$1}');
console.log(str);
The "([^"]*)"
regex captures a "
, followed by 0 or more things that aren't another "
, and a closing "
. The replacement uses $1
as a reference for the things that were wrapped in quotes.
let str = '"This" is my "new" key "string"';
str = str.replace(/"([^"]*)"/g, '{$1}');
console.log(str);
let str = '"This" is my "new" key "string"';
str = str.replace(/"([^"]*)"/g, '{$1}');
console.log(str);
edited Dec 23 '18 at 6:49
Nick Parsons
4,8222721
4,8222721
answered Dec 23 '18 at 6:46
puddi
73138
73138
add a comment |
add a comment |
Your code currently is only working for the first occurrence of each {
and }
. The easiest way to fix this would be to loop while there is still a "
in str
:
let str = '"This" is my "new" key "string"';
while (str.includes('"')) {
str = str.replace(/"/,'{').replace(/"/,'}');
}
console.log(str);
add a comment |
Your code currently is only working for the first occurrence of each {
and }
. The easiest way to fix this would be to loop while there is still a "
in str
:
let str = '"This" is my "new" key "string"';
while (str.includes('"')) {
str = str.replace(/"/,'{').replace(/"/,'}');
}
console.log(str);
add a comment |
Your code currently is only working for the first occurrence of each {
and }
. The easiest way to fix this would be to loop while there is still a "
in str
:
let str = '"This" is my "new" key "string"';
while (str.includes('"')) {
str = str.replace(/"/,'{').replace(/"/,'}');
}
console.log(str);
Your code currently is only working for the first occurrence of each {
and }
. The easiest way to fix this would be to loop while there is still a "
in str
:
let str = '"This" is my "new" key "string"';
while (str.includes('"')) {
str = str.replace(/"/,'{').replace(/"/,'}');
}
console.log(str);
let str = '"This" is my "new" key "string"';
while (str.includes('"')) {
str = str.replace(/"/,'{').replace(/"/,'}');
}
console.log(str);
let str = '"This" is my "new" key "string"';
while (str.includes('"')) {
str = str.replace(/"/,'{').replace(/"/,'}');
}
console.log(str);
answered Dec 23 '18 at 6:45
Jack Bashford
5,66131235
5,66131235
add a comment |
add a comment |
Try like this
str.replace(/"(.*?)"/g, "{$1}")
we need to use g-gobal flag
. Here capturing string between double quotes "", then replace with matched string curly braces
add a comment |
Try like this
str.replace(/"(.*?)"/g, "{$1}")
we need to use g-gobal flag
. Here capturing string between double quotes "", then replace with matched string curly braces
add a comment |
Try like this
str.replace(/"(.*?)"/g, "{$1}")
we need to use g-gobal flag
. Here capturing string between double quotes "", then replace with matched string curly braces
Try like this
str.replace(/"(.*?)"/g, "{$1}")
we need to use g-gobal flag
. Here capturing string between double quotes "", then replace with matched string curly braces
answered Dec 23 '18 at 6:48
Raja Jaganathan
8,68431723
8,68431723
add a comment |
add a comment |
A very simple way to do that is to iterate over string as an array and every time it encounters character "
replace it either by {
or by }
repeatedly.
let str = '"This" is my "new" key "string"';
let strArray = str.split("");
let open = true;
for (let i = 0; i < strArray.length; ++i) {
if (strArray[i] == '"') {
if (open === true) {
strArray[i] = '{';
}
else {
strArray[i] = '}';
}
open = (open == true) ? false : true;
}
}
str = strArray.join("");
console.log(str)
add a comment |
A very simple way to do that is to iterate over string as an array and every time it encounters character "
replace it either by {
or by }
repeatedly.
let str = '"This" is my "new" key "string"';
let strArray = str.split("");
let open = true;
for (let i = 0; i < strArray.length; ++i) {
if (strArray[i] == '"') {
if (open === true) {
strArray[i] = '{';
}
else {
strArray[i] = '}';
}
open = (open == true) ? false : true;
}
}
str = strArray.join("");
console.log(str)
add a comment |
A very simple way to do that is to iterate over string as an array and every time it encounters character "
replace it either by {
or by }
repeatedly.
let str = '"This" is my "new" key "string"';
let strArray = str.split("");
let open = true;
for (let i = 0; i < strArray.length; ++i) {
if (strArray[i] == '"') {
if (open === true) {
strArray[i] = '{';
}
else {
strArray[i] = '}';
}
open = (open == true) ? false : true;
}
}
str = strArray.join("");
console.log(str)
A very simple way to do that is to iterate over string as an array and every time it encounters character "
replace it either by {
or by }
repeatedly.
let str = '"This" is my "new" key "string"';
let strArray = str.split("");
let open = true;
for (let i = 0; i < strArray.length; ++i) {
if (strArray[i] == '"') {
if (open === true) {
strArray[i] = '{';
}
else {
strArray[i] = '}';
}
open = (open == true) ? false : true;
}
}
str = strArray.join("");
console.log(str)
let str = '"This" is my "new" key "string"';
let strArray = str.split("");
let open = true;
for (let i = 0; i < strArray.length; ++i) {
if (strArray[i] == '"') {
if (open === true) {
strArray[i] = '{';
}
else {
strArray[i] = '}';
}
open = (open == true) ? false : true;
}
}
str = strArray.join("");
console.log(str)
let str = '"This" is my "new" key "string"';
let strArray = str.split("");
let open = true;
for (let i = 0; i < strArray.length; ++i) {
if (strArray[i] == '"') {
if (open === true) {
strArray[i] = '{';
}
else {
strArray[i] = '}';
}
open = (open == true) ? false : true;
}
}
str = strArray.join("");
console.log(str)
answered Dec 23 '18 at 7:00
Bishal Gautam
800517
800517
add a comment |
add a comment |
1
I kind of agree with whoever voted to reopen this question. While the question about smart quotes is quite similar, someone looking for a simple way to replace symmetrical delimiters with balanced pairs would need to scroll quite far down to find the only answer that doesn't assume the input is English prose text there.
– Ilmari Karonen
Dec 23 '18 at 20:14