2016-10-24 2 views
2
I는 알파벳 문자, 공간, 대시, 아포스트로피와 길이 (50)을 허용 정규 표현식을 쓰기 위해 노력하고있어

지금까지이있다 :허용 알파벳 문자, 공간, 대시, 아포스트로피 및 길이 <= 50

/^([A-Za-z\s].{1,50})$/ 

대시 및 아포스트로피의 코드를 어디에 두어야하는지 잘 모르겠습니다. 누구든지 기꺼이 도와 주시면 알려주세요. 감사. 대신 공간의 \s를 사용하는 경우

+0

제목에 실제 문제를 설명해주십시오. BTW, "길이 50"또는 "길이 ** 최대 ** 50"을 의미합니까? –

+0

@ 토라자부로 무엇을 설명해야합니까? 모든 것이 이미 설명되어 있으며 아래에 답변이 나와 있습니다. –

+0

조언을 원하지 않으면 괜찮습니다. 사람들이 제목을 기반으로 질문을 클릭하면됩니다. 제목이 실제로 질문을 설명하게 만드는 것이 당신의 관심사입니다. –

답변

3

당신은

/^[A-Za-z '-]{1,50}$/ 

또는

/^[A-Za-z\s'-]{1,50}$/ 

이 필요합니다, 당신은 공백을 허용합니다.

아포스트로피는 문자 클래스의 어느 위치 에나 배치 할 수 있으므로 (범위를 망가 뜨리지 않도록) 문자 클래스의 시작/끝 부분에있는 하이픈을 이스케이프 할 필요가 없습니다.

{1,50}limiting quantifier을 사용하면 문자 클래스에 지정된 유형의 문자를 1에서 50 개까지 허용 할 수 있습니다. 정확히 50자를 허용하는 경우 /^[A-Za-z\s'-]{50}$/을 사용하십시오. 대신 +을 사용하는 경우 하나 이상의 문자를 허용합니다.

+0

이 경우 +가 필요합니까? 나는 어떤 경우에 내가 플러스를 필요로하는지 이해하지 못하는 곳에서 이해하려고 노력하고있다. –

+3

* 대신에'+'만 사용하면 하나 이상의 문자를 사용할 수 있습니다 * –

+0

문자 클래스에서 \ s 또는 공백을 사용하는 것이 더 좋습니까? –

관련 문제