2013-07-29 2 views
0

입력 필드가 있고 입력이 여러 언어 (및 숫자)에 대해 유효한지 확인하고 싶습니다.문자열에 여러 유니 코드 범위의 문자 만 포함되어 있는지 확인하려면 어떻게해야합니까?

웹에서 약간의 비트를 수집했지만 이러한 조각을 하나의 작동하는 정규 표현식으로 결합하는 방법을 알 수 없습니다. here에서

0000-007F Basic Latin 
0080-00FF Latin-1 Supplement 
0100-017F Latin Extended-A 
0180-024F Latin Extended-B 

내가 일본 범위 발견 :

4e00-9fbf, 3040-309f and 30a0-30ff 

을하지만 (숫자 포함) 한 정규식에 어떻게 결합 할 here에서

는 내가 필요로하는 범위의 일부를 발견 자바 스크립트에서 허용 된 유일한 문자인지 확인할 수 있습니까? (더 많은 언어가 필요하지만 개념을 이해하고 유니 코드 범위를 직접 추가 할 수 있습니다.)

+0

에서

<script src="xregexp.js"></script> <script src="addons/unicode/unicode-base.js"></script> <script> var unicodeWord = XRegExp("^\\p{L}+$"); unicodeWord.test("Русский"); // true unicodeWord.test("日本語"); // true unicodeWord.test("العربية"); // true </script> 

코드, 당신은 문자로 문자를 확인할 수 있습니다. –

+0

1. 어떻게해야합니까? 2. 정규 표현식을 사용하지 않고 char에 의한 검증 char을 만드는 것은 잘못된 습관이 아닙니까? – Alon

답변

2

알고있는 모든 언어의 문자와 일치하는 regex category \p{L}이 있습니다. 하지만 안타깝게도 JavaScript는 내장 된 RegExp을 지원하지 않습니다. 대신 XRegExpUnicode Base plugin과 함께 사용하는 것이 좋습니다. 그들 중 어떤 범위의 여부를 벗어 만약 내가 정규식을 사용하는 대신 생각 http://xregexp.com/plugins

+0

이 라이브러리를 보았지만 몇 가지 언어 (독일어, 프랑스어, 스페인어, 한국어, 일본어 등)와 숫자를 연결하는 방법에 대해 혼란스러워했습니다. 어떻게 그런 일을합니까? – Alon

+0

'\\ p {L} \\ d] +'와 같이'\ d'와'\ p {L} '을 사용하십시오. 피들 : http://jsfiddle.net/dgeBR/ – Mics

관련 문제