2012-07-28 2 views
5

Node.js에서 기본 String 테스트를하고 싶습니다. 사용자가 이름을 입력하는 양식이 있고 그것이 쓰레기 또는 실명인지 확인하고 싶다고 가정합니다.RegEx 확장 라틴어 알파벳 (ö ö ü è ß)

다행히도 (또는 슬프게도 내 확인을 위해) 전 세계의 사용자가 영어로만 구성되어 있습니다 (예 : ä ö ü ß é). /[A-Za-z -]{2,}/을 사용했으나 "Jan Buschtöns"과 같은 이름이 아닙니다.

가능한 모든 영어 이외의 영어이지만 라틴 문자를 RegEx에 수동으로 추가해야합니까? /[A-Za-z -äöüÄÖÜßéÉèÈêÊ...]{2,}/처럼 RegEx와 같은 100 자 이상을 원하지 않습니다.

+0

'/ \ w + /'와 같은 트릭이 작동하지 않습니다. 그들은 영어 문자와도 일치합니다. – buschtoens

+2

Salish 이름을 가진 사람을 얻으면 어떻게 될까요? [Salish languages] (http://en.wikipedia.org/wiki/Salishan_languages)는 문자로 "7"을 사용합니다 (예 : "Sḵwxwú7mesh"). 한국, 일본, 중국에 대해서는 어떨까요? [Falsehoods Programmers About Names] (http://www.kalzumeus.com/2010/06/17/falsehoods-programmers- 믿음의 이름들 /). 나는 기본적으로 당신이 당신의 수표로 전혀 귀찮게하지 말 것을 제안하고 있습니다. –

+0

나는 아시아와 키릴 어에 대해 이미 생각했다. 그들이 사용할 수있는 라틴어 등가물 있습니다. 그리고 ... Salish는 매우 드문 경우입니다. : D – buschtoens

답변

4

확인 http://www.regular-expressions.info/unicode.html

http://xregexp.com/plugins/ 당신은 유니 코드를 포함 할 경우 어떤 편지 쓰기 문자와 일치하는 \p{L}을 사용해야합니다.

유니 코드로 말하면 \w의 대안은 [\p{L}\p{N}_]입니다.

+0

js –

+0

@MrAnderson, 브라우저 플러그인이 아니라 자바 스크립트 lib에서만이 작업을 수행하려면 [ 'plugin'] (http://xregexp.com/plugins/)이 필요하다고 생각합니다. silvinci는 Node.js를 사용하고 있으며 XRegExp를 모듈로 가져 오기가 매우 쉽습니다. – slevithan

+0

"POSIX 문자 클래스"를 검색하십시오. 자바 스크립트 정규식은이를 지원하며 일반적으로 (적어도 가장 일반적으로 사용되는 인간 언어의 경우) "this is a letter"또는 "this is a 대문자"와 같은 질문에 매우 간단하게 대답 할 수 있습니다. – ebohlman

관련 문제