I have been breaking my head on this for sometime now. In javascript I have a string expression where I need to remove the spaces between '[' and ']'.
For example the expression can be :-
"[first name] + [ last name ] + calculateAge()"
I want it to become :-
"[firstname] + [lastname] + calculateAge()"
I tried something from the following stackoverflow question for square brackets but didn't quite get there. How do I make the regex in that question, work for square brackets too?
Can anyone help?
Thanks, AJ
If brackets are always balanced correctly and if they are never nested, then you can do it:
result = subject.replace(/\s+(?=[^[\]]*\])/g, "");
This replaces whitespace characters if and only if there is a ]
character ahead in the string with no intervening [
or ]
characters.
Explanation:
\s+ # Match whitespace characters
(?= # if it's possible to match the following here:
[^[\]]* # Any number of characters except [ or ]
\] # followed by a ].
) # End of lookahead assertion.
Try
"[first name] + [ last name ] + calculateAge()".replace(/\[.*?\]/g, function(string) {
return string.replace(/\s/g, '');
})
Demo: Fiddle
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With