var characterReg = /^\s*[a-zA-Z0-9_,\s-]+\s*$/;
-
является специальным символом и означает диапазон, если вы пишете его между двумя символами.Таким образом, вы можете избежать этого (\\-
) или просто положить в конец содержимого []
.
На самом деле вы можете написать \\w
вместо a-zA-Z0-9_
. \\w
- это символ слова (буквы,цифры и подчеркивания).
А также \s*
, в конце концов, не нужно, потому что в квадратных скобках есть пробел и [\\w,\s-]+
будет соответствовать этому foo bar-123
полностью
Я думаю, что это лучше: var characterReg = /^\s*[\\w,\s-]+$/;