2011-12-05 8 views
1

私はmodx革命を使ってページを開発しています。これは、多くの組み込み関数を備えた完全なCMSです。マネージャーにページを作成すると、自動的にそのページを指すフレンドリーなURLが生成されます。Regexが友好的なURLの特別なノルウェー語の文字を拒否する - modx

問題は、私たちがノルウェーの特殊文字(øøå(大文字のØØÅ))を否定しないことです。

システムには、ほとんどの悪い文字のURLを取り除くための組み込み正規表現がありますが、私はÉøåとÆØÅも取り除くためにexperessionが必要です。

パターンは次のようになります。

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

誰もがこれらの6つの文字を含めるために彼らの魔法の正規表現の知識を使用することはできますか?私は完全に正規表現で緑で、単純にそこに手紙を追加することは動作していないようでした。

PS:ここでは一般的な「ブー、正規表現を使用しないでください」を使用しないでください。パターンは理由のためにそこにあります。私たちがmodxをアップグレードしなければならない場合、私はコアを使いこなすことを望んでいません(これは、まあ遅かれ早く起こる可能性が高いです)。

+0

MODxには、PHPで書かれているので、 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を伝え、次にUnicode文字列として正規表現を解釈します。

\x{00C6}は、Unicode文字はÆ

でそれらを見ながら、私はミスを犯していなかったことを確認するために自分で他の文字のコードを確認してください。ドキュメントがあるしかしhttp://rtfm.modx.com/display/revolution20/friendly_alias_translit_class

はMODXが実際にカスタム文字変換クラスを定義することができ、システムの設定を持ってい

+0

チャームのように働いた。 – OptimusCrime

1

コード・ポイントのためのPHPでのUnicodeの使用のために

Unicode.orgregular-expression.infoを参照してください。これをどのように実装するかについては少ししか説明できません。そこドイツ語とロシア語の別名の音訳をサポートしているコアの開発者の一人によって構築された既存のパッケージがありますが、あなたは簡単にノルウェーやその構成に他の言語を追加することができます。

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

関連する問題