2011-12-05 1 views
1

modx 혁명을 사용하여 페이지를 개발 중입니다. 그것은 내장 된 기능이 많은 완벽한 CMS입니다. 관리자 페이지를 만들면 해당 페이지를 가리키는 친숙한 URL이 자동으로 생성됩니다.정규식 URL에서 특수 노르웨이어 문자를 거부하는 정규식 - modx

노르웨이의 특수 문자 (øøå (대문자 ØØÅ))를 거부하지 않는 것이 문제입니다.

시스템은 대부분의 나쁜 문자에 대한 URL을 제거하기 위해 내장 정규 표현식을 얻었지만 Éøå과 ÆØÅ도 제거해야합니다.

패턴은 다음과 같습니다

/[\0\x0B\t\n\r\f\a&=+%#<>"~:`@\?\[\]\{\}\|\^'\\]/ 

사람이 여섯 글자를 포함하는 마법 정규식 지식을 사용할 수 있습니까? 나는 정규식에서 완전히 녹색이고 단순히 거기에 글자를 추가하는 것은 작동하지 않는 것 같았다.

추신 : 일반적인 "부씨, 여기서는 정규식을 사용하지 마세요"를 사용하지 마십시오. 패턴은 이유가 있기 때문에, 우리가 modx를 업그레이드해야한다면 코어가 엉망이되고 싶지 않습니다 (조만간 발생할 가능성이 매우 높습니다).

+0

, php 태그를 추가했습니다. – stema

답변

2

유니 코드를 사용해보십시오. modx는 모르지만 php로 작성된 이래로 php preg 정규 표현식을 사용하기를 바랍니다.

/[\0\x0B\t\n\r\f\a&=+%#<>"~:`@\?\[\]\{\}\|\^'\\\x{00C6}\x{00E6}\x{00C5}\x{00E5}\x{00D8}\x{00F8}]/u 

u 수정은 다음 유니 코드 문자열로 정규 표현식을 해석하고, 유니 코드 매칭 모드를 사용하도록 PHP를 알려줍니다.

\x{00C6}은 Æ

그들을 찾는 동안 나는 실수를하지 않았다 보장하기 위해 스스로 다른 문자의 코드를 확인하시기 바랍니다 유니 코드 문자입니다.

코드 포인트 PHP

Unicode.org에서 유니 코드 사용에 대한 regular-expression.info를 참조

+0

매력처럼 작동했습니다. – OptimusCrime

1

MODX 실제로 사용자 정의 음역 클래스를 정의 할 수있는 시스템 설정이 있습니다 : 워드 프로세서는이다 그러나 http://rtfm.modx.com/display/revolution20/friendly_alias_translit_class

을 비트 어떻게 구현할 수 있습니다 스파 스. 이 독일어, 러시아어에 대한 별칭 음역을 지원하는 핵심 개발자 중 하나에 의해 구축 된 기존 패키지입니다,하지만 당신은 쉽게 노르웨이어 추가하거나 구성을 다른 언어 :

modx는 PHP로 작성되어 있기 때문에

http://modx.com/extras/package/translit