2012-10-09 2 views
2

모든 것을 깨끗하게 유지하려면 입력 유효성 검사, 입력 유효성 검사가 필요합니다. 그래서 "full name"에 대한 엄격한 정규 표현식을 원한다. 그래서 유니 코드 지원이 필요하다.자바 스크립트 Node.js 유니 코드 정규식

올바른 이름 :

  • 존 Elkjærd
  • 앙드레 Svenson
  • 마르코 드 알메이다
  • 크리스토퍼 라 나는 정규 표현식에 "자신의 형식을"컴파일 및 유니 코드 그러나 지원 XRegExp을 다운로드 Cour

잘못된 이름 :

  • 한스
  • H4nn3 안데르센
  • 마틴 헨릭슨!

은 그래서 필요

  1. 일치 유니 코드 문자 (A, æ)
  2. 일치 유니 코드 악센트 (A, E 등)
  3. 일치 유니 코드 하이픈 (- _ 등)
  4. 나는 다음과 같은 작업을 수행 할 수 PHP에서

일치합니다 :

\p{L} (unicode letter) 
\p{Mn} (unicode accents) 
\p{Pd} (unicode hyphens) 
내가 XRegExp으로 할 수있는 것을 알아 낸 무엇

:

^\ P {L}을 (를) + $이 일치합니다 '日本'이렇게 문자 만 한 작품,하지만 난이 유니 코드 작업을 수행하는 방법을 알아낼 수있는 방법 억양, 하이픈?

도움 주셔서 감사합니다.

+2

[이 조명 기사] (http://www.kalzumeus.com/2010/06/17/falsehood-programmers-believe-about-names/)를 참조하십시오. 예를 들어 [N! xau] (http://en.wikipedia.org/wiki/N%C7%83xau)와 같은 합법적 인 이름을 허용하지 않을 것입니다. – lanzz

+0

@lanzz 그러면 논리 선택이 포함됩니다. "23780f"의 이름으로 가짜 계정을 만드는 사람들이 유니 코드와 일치하지 않는 사람이나 적절한 정규 표현식을 가진 사람들보다 많습니다. – onlineracoon

+2

다음을 고려하십시오. 합법적 인 사용자 중 일부가 실제로 자신의 법적 이름을 입력하지 못하도록하고 싶습니까? 사람들은 자신의 정체성에 대해 강한 감정을 갖는 경향이 있습니다. 누군가가 "유효하지 않은"이름을 가지고 있다고 비난하는 것은 귀하의 사이트에 대한 따뜻한 느낌을 북돋아주지는 않습니다. 그리고 나를 믿어 라. 가짜 계정을 만들고 싶은 사람들은 가짜 이름을 생각할 능력이있다. – lanzz

답변

2

@lanzz는 이름 유효성 검사와 관련된 잠재적 인 문제에 대해 좋은 의견을 주었지만, 레코드의 경우 PHP에서와 마찬가지로 XRegExp로 언급 한 유니 코드 범주를 사용할 수 있습니다. 예 : XRegExp('^[\\p{L}\\p{Mn}\\p{Pd} ]+$'). XRegExp의 유니 코드 범주 애드온이 필요합니다. 자바 스크립트 문자열 리터럴 이스케이프 규칙 때문에 백 슬래시가 이스케이프 처리됩니다.