Regex to remove spaces between '[' and ']'

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.


\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.


"[first name] + [ last name ] + calculateAge()".replace(/\[.*?\]/g, function(string) {
    return string.replace(/\s/g, '');

Demo: Fiddle


You can use this

"[first name] + [ last name ] + calculateAge()".gsub(/\s+/, "")

This works in ruby


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.