Building an expression that will reject an untrimmed input string.
Have a group of white-listed symbols, including whitespace. But it cannot be used at the first or at the last one position. However, it may be used between any leading and trimming white-listed symbol in any amount.
Have a following expression:
^[^\s][A-Za-z0-9\s]*[^\s]$
... but it doesn't work in several reasons, at least it still matches at leading and trailing position any non-whitespace symbol even if it's not white-listed. Futhermore, it won't match single letter word even if it matches to the expression.
The whitelist is A-Z, a-z, 0-9, whitespace.
Valid case:
Abc132 3sdfas // everything ok
Invalid case #1:
asd dsadas // leading\trailing space is exist
Invalid case #2:
$das dsfds // not whitelisted symbol at the leading\trailing position
So, how to add a whitespace symbol to the white-list if it isn't the leading or the trailing symbol?
The Difference Between \s and \s+ For example, expression X+ matches one or more X characters. Therefore, the regular expression \s matches a single whitespace character, while \s+ will match one or more whitespace characters.
\\. matches the literal character . . the first backslash is interpreted as an escape character by the Emacs string reader, which combined with the second backslash, inserts a literal backslash character into the string being read. the regular expression engine receives the string \.
The STRIP function is similar to the TRIM function. It removes both the leading and trailing spaces from a character string.
\W means "non-word characters", the inverse of \w , so it will match spaces as well.
You could use lookarounds to ensure that there are no spaces at both ends:
^(?! )[A-Za-z0-9 ]*(?<! )$
Live demo
But if the environment doesn't support lookarounds the following regex works in most engines:
^[A-Za-z0-9]+(?: +[A-Za-z0-9]+)*$
depending on your regex engine supporting look around
^(?=[A-Za-z0-9])([A-Za-z0-9\s]*)(?<=[A-Za-z0-9])$
Demo
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