I got Invalid range in character class issue when trying to use regex
/^[a-zA-Zа-яА-ЯЁё0-9_-\s]{6,20}$/
But the issue is only in Firefox, in Chrome it's ok.
With this regex I am trying to say "only latin, russian letters, numbers, space and '_' and '-' signs allowed"
I got Invalid range in character class issue when trying to use regex
/^[a-zA-Zа-яА-ЯЁё0-9_-\s]{6,20}$/
But the issue is only in Firefox, in Chrome it's ok.
With this regex I am trying to say "only latin, russian letters, numbers, space and '_' and '-' signs allowed"
Share Improve this question asked May 6, 2014 at 14:04 Lambrusco.NewbieLambrusco.Newbie 1692 silver badges13 bronze badges 3-
2
Try to put the
-
at the end or at the begining of the class or escape it. – Casimir et Hippolyte Commented May 6, 2014 at 14:05 - possible duplicate of Accept international name characters in RegEx – Cerbrus Commented May 6, 2014 at 14:05
- Thanks Casimir that was the issue! – Lambrusco.Newbie Commented May 6, 2014 at 14:07
1 Answer
Reset to default 6The _-\s
is creating a range between the underscore and space characters. You need to either escape the -
as in _\-\s
or put it at the end:
[a-zA-Zа-яА-ЯЁё0-9_\s-]
Also beware of the а-я
range. If this is the same as the Latin 1 a
the range may not be what you expect at all.