2011-04-26 2 views
1

일부 사용자 입력의 유효성을 검사하려고하지만 발음지가 발생할 때 정규식이 실패합니다. 나는 ăĂ과 같은 캐릭터에 대해서 이야기하고있다.정규식 분음 부호 문제

정규식 코드에 무엇을 추가해야 입력 내용에서 발음 구별 기호도 유효성을 검사해야합니까?

감사합니다.

P .: 문제가 발생하면 PHP를 CakePHP 프레임 워크와 함께 사용하고 있습니다. 다음 유니 코드 문자가 도움이 될 수 있도록, 당신이 편지를 일치시킬 가정 return preg_match('|^[0-9a-zA-Z_-\s]*$|', $value);

+1

정규식이 무엇인지 알려주지 않으면 어떻게 도와 드릴까요? – Gabe

+0

죄송합니다, 그것을 추가하는 것을 잊어 버렸습니다! – linkyndy

답변

6

:

사용 /\p{L}+/u 예를 들어 당신이 원하는 경우

내가 현재 사용자 입력의 유효성을 확인하는 데 사용하고 코드의 조각 일련의 문자를 일치시킵니다. /u (유니 코드) 수정자를 잊지 마십시오. 귀하의 경우에는

:

return preg_match('|^[0-9\p{L}_\s-]*$|u', $value); 

작동합니다.

제쳐두고 |을 정규식 구분 기호로 사용하는 것은 좋지 않습니다. 현재의 정규식 /에 대해서는 아무 문제가 없습니다. 다른 대안은 ~ 또는 #입니다. 왜냐하면 텍스트에서 거의 발생하지 않고 정규 표현식에서 특별한 의미가 없기 때문입니다.

+0

자세한 설명을 해주셔서 감사합니다! – linkyndy