How to put a validation over a field which wouldn't allow only special characters, that means AB#,A89@,@#ASD
is allowed but @#$^&
or #
is not allowed.I need the RegEx for this validation.
views:
103answers:
3str.match(/^[A-Z#@,]+$/)
will match a string that...
- ... starts
^
and ends$
with the enclosed pattern - ... contains any upper case letters
A-Z
(will not match lower case letters) - ... contains only the special chars
#
,@
, and,
- ... has at least 1 character (no empty string)
For case insensitive, you can add i
at the end : (i.g. /pattern/i
)
** UPDATE **
If you need to validate if the field contains only specials characters, you can check if the string contains only characters that are not words or numbers :
if (str.match(/^[^A-Z0-9]*$/i)) {
alert('Invalid');
} else {
alert('Valid');
}
This will match a string which contains only non-alphanumeric characters. An empty string will also yield invalid. Replace *
with +
to allow empty strings to be valid.
If you can use a "negative match" for your validation, i. e. the input is OK if the regex does not match, then I suggest
^\W*$
This will match a string that consists only of non-word characters (or the empty string).
If you need a positive match, then use
^\W*\w.*$
This will match if there is at least one alphanumeric character in the string.
I believe what you're looking for is something like this:
!str.match(/^[@#$^&]*$/)
Checks that the string does not contain only symbols, i.e., it contains at least one character that isn't a symbol.