10

Web フォームが送信された後、サーバー側 (PHP 経由) でユーザー入力に正規表現が適用されます。クライアント側で同じ正規表現をリアルタイムで実行して、実際の入力がどうなるかをユーザーに示したいと思います。これは、スタック オーバーフローの質問ページのプレビュー セクションとほぼ同じですが、.NET の代わりにバックエンドの PHP が使用されています。

PHP と JavaScript の正規表現が互いにまったく同じように動作するようにするには、何を覚えておく必要がありますか?

4

5 に答える 5

12

Hehe これは少し前に尋ねられたもので、Jeff は次のように指摘しました:
http://www.regular-expressions.info/refflavors.html

ツールと言語間での正規表現機能の比較があります。

于 2008-08-27T13:39:38.987 に答える
3

正規表現の基本はほとんどの実装で共通であるため、正規表現が単純であれば問題はありません。

詳細については、両方の実装を調べるのが最善です。

http://www.regular-expressions.info/php.html

http://www.regular-expressions.info/javascript.html

Javascript の実装はおそらくより基本的なものなので、最小公分母アプローチを使用する場合は、それを目指してください。

于 2008-08-27T13:41:47.577 に答える
1

正規表現の実装が異なると、正確にサポートする内容が微妙に異なることがよくあります。フロントエンドとバックエンドの両方で結果が同じであることを完全に確認したい場合は、PHP バックエンドに Ajax 呼び出しを行い、両方の正規表現評価に同じ PHP コードを使用するのが最も安全な選択です。

于 2008-08-27T13:41:08.840 に答える
1

ここでは@LKM AJAXが明らかに勝者です。これにより、 DRYの原則に従うこともできます。解析コードを JavascriptとPHPで記述したいのはなぜですか?

于 2008-08-27T14:57:47.517 に答える
0

JavaScript の正規表現と PHP の preg_match はどちらも Perl に基づいているため、移植の問題は発生しません。ただし、Javascript は Perl がサポートする修飾子のサブセットのみをサポートすることに注意してください。

2 つを比較するための詳細については、次の情報を参照してください。

配信方法については、日付の時点で最もスリムなデータ交換形式 (AFAIK) であり、eval() を介して JavaScript オブジェクトに直接変換できるJSONを使用することをお勧めします。その悪い子をAJAXセッションに通すだけで準備完了です。

これが役立つことを願っています:)

于 2008-08-27T15:54:43.717 に答える