2011-11-16 4 views
2

내 웹 사이트에서 이미 ctype_alnum을 사용하고있는 아랍어 사용자 이름이 username 필드의 유효성을 검사하도록 허용해야합니다. 아랍어 사용자 이름을 사용하려고하면 유효성 검사 오류 메시지가 반환됩니다. ctype_alnum은 아랍어 문자를 문자 및 숫자로 인식하지 못합니다. 이 문제를 해결하려면 어떻게해야합니까?ctype_alnum과 함께 아랍어 사용

+0

ctype_alnum은 0-9A-Za-z 만 인식하므로 정규 표현식을 사용해야합니다. – Alasdair

+0

그래서, 나는 ctype_alnum과 함께 아랍어를 사용할 수 있습니까? – wfareed

+0

아니, 그것은 alnum이 아니야. 아랍어를 라틴 문자로 변환하지 않는 한이를 확인한 다음 다시 변환하십시오. – Alasdair

답변

2

이 정규식을 사용하여 모든 아랍어 문자를 찾을 수 있습니다

preg_match("/^[a-zA-Z\p{Cyrillic}0-9\s\-]+$/u", $string); 

를 일치 길이는 아랍어 이름 인 사용자 이름의 길이를 동일합니다.

0

ctype_alnum은 0-9A-Za-z 만 인식합니다.

정규 표현식을 쓰거나 (이 글을 쓰는 동안 게시 된 crothhass) 또는 아랍어를 라틴 알파벳으로 변환하고 ctype_alnum으로 확인한 다음 다시 변환 할 수 있습니다.

하지만 내가 실제로 권장하는 것은 다른 방향에서 문제를보고 단지 원하지 않는 문자를 확인하는 것입니다. 어쨌든 UTF-8을 사용하고 있으며 다른 것을 받아 들일 수 있기 때문에 공백과 구두점이 사용됩니다.