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

Answers:

Answer

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

Try

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

Demo: Fiddle

Answer

You can use this

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

This works in ruby

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.