2014-08-28 4 views
1

내가 영숫자 수 있도록 노력하고 있습니다 및 일부 특수 문자javascript- 정규 표현식 숫자와 특수 문자

var regx = /^[A-Za-z0-9._-\] ]+$/; 

나는 슬래시와 함께] 기호를 탈출 시도했지만 여전히 나던 작품. 당신은 또한 - 문자를 이스케이프 할 필요가 내가

+0

를 당신이 테스트, 그리고 무엇이 잘못되었는지? –

+0

나는 슬래시 (/)가 아니라 백 슬래시 (\\)를 의미한다고 생각한다. –

답변

3

누락 무엇 이니

- 항상 필요는 없습니다 이스케이프. 그러나 여기서는 대괄호 안에 사용되어 JavaScript 엔진이 "문자 클래스의 순서가 잘못되었습니다"오류 인 _-]의 범위를 지정하려고한다고 가정합니다.

/[_-a]/은 유효한 정규 표현식이며 _, `a (ASCII 코드 95 ... 97)과 일치합니다. 원하는 결과가 아닐 수도 있습니다. 당신이 오류 얻을 것 regex101 같은 온라인 정규식 테스터에 정규식을하려고하면

1

:

Regex link

enter image description here

을 당신은 \-를 사용하여 -을 탈출해야 :

^[A-Za-z0-9._\-\] ]+$ 

btw, yo

^[\w.\-% ]+$ 

편집 : u는 당신의 정규식을 단축 할 수 있습니다 추가 정규식 의견을 남겨주 :

^[\w.-\]\[ #$>()@{}'"]+$ 

Working demo

+0

정규 표현식을 수정했습니다 : var regx = /^[A-Za-z0-9._-%] + $ /; 나는 %를 포함 시켰고 이제 크롬에서 실행할 때 문자 클래스에서 구문 오류 범위가 잘못되었습니다. # $> []() @ {} ' "와 영숫자와 같은 특수 문자를 포함하고 싶습니다. – Mary

+0

@Mary 당신의 코멘트에 대한 답을 업데이트했습니다. Btw, 당신의 질문에 답이 나온다면 당신의 질문을 해결했다고 표시 할 수 있습니다. –