1

ploneformgen 1.7で作成したフォームで正規表現を使いたいです。私は plone 4.1 を使用しています。テキスト フィールドのカスタム検証。

正規表現を使用するにはどうすればよいですか?

私は次のことを試しました:

python: import re; test(value==re.search(r'[123]'), False, 'Needs to be number 1 or 2 or 3')

しかし、エラーが発生するため、検証できません。値は 1 または 2 または 3 にする必要があります。式を次のように使用できます。

python: test(value=='1' or value=='2' or value=='3', False, 'Needs to be number 1 or 2 or 3')

しかし、正規表現を使用したいと思います。ガイドしてください。

4

3 に答える 3

4

through-the-web スクリプト、TALES "python:" 式、PFG オーバーライド、および PFG スクリプト アダプターで使用できるパッケージとタイプのセットは、制限付き Python で使用できるものに限定されます。制限付き Python は、使用できるモジュールとタイプについて、意図的に非常に保守的です。

Egg リストに含まれる Python パッケージで作成された明示的な「allow」宣言を使用して、リストを拡張できます。このようなパッケージのサンプルはgithub collectiveで入手でき、re.

TALES 式で「re をインポート」することはできませんが、TTW スクリプトで re を使用することはできます。これは PFG バリデーターとして使用できます。

于 2013-02-05T16:20:55.993 に答える
3

http://docs.zope.org/zope2/zope2book/ScriptingZope.htmlによると、正規表現は制限付き Python で禁止されているため、TALES では使用できません。

于 2013-02-05T06:03:29.903 に答える
-1

実際には、検索方法には2つのパラメーターが必要です。

次のように使用する必要があります。import re; test(re.search(r'[123]', value), False, 'Needs to be number 1 or 2 or 3')

于 2013-02-05T05:59:43.107 に答える