thinkphp の formvalidtor での正規表現の記述に関する問題 誰か助けてくれますか?

WBOY
リリース: 2016-06-23 14:02:45
オリジナル
881 人が閲覧しました


formValidator-4.1.3.js を使用してメール形式を確認します。
書き方は以下の通りです。

$("#email").formValidator({onShow: "メール アドレスを入力してください", onFocus: "メール アドレスの長さは 6 ~ 100 文字です。正しく入力した場合のみフォーカスを離れることができます", onCorrect : "おめでとうございます、正しく負けました。" ,defaultValue:"@"}).inputValidator({min:6,max:100,onError:"入力したメール アドレスは不正です。ご確認ください。"}).regexValidator({regExp: "^([ \w-.] +)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)| (([\w-]+. )+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$",onError:"メール入力した形式が正しくありません"});


静的 Web ページで正常にテストされました。ただし、thinkphp テンプレート ファイルでは、解析されたコードは
regExp:"^([ w-.]+)@(([[0-9]{1,3}.[0-9]{ 1,3}. [0-9]{1,3}.)|(([\w-]+.)+))([a-zA-Z]{2,4}|[0-9] {1,3} )(]?)$"

により、formValidator は「文字セットが範囲外」を報告します。

なぜ表現を変えたのか。 \w は w になりましたか?
確認してください!


ディスカッションへの返信(解決策)

変数にテンプレートファイルを読み込むので、\w が w になります
\w または \\w と書くには

ご返信ありがとうございます。上記の修正を加えた後は問題ありませんでした。
まだ少し疑問があります。

regExp:"^([ \w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3 }.)|(([ \w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"

式に \w が 2 つあります。なぜ、前の \w だけが w に変換され、後者の \w は変更されないままになるのでしょうか? これは、C ソースコードを見る必要があります。 php を使用して原因を分析してください
ただし、これは誰でもできることではありません

実際に使用する際に詳しく説明する必要はありません。「」を追加しても機能しない場合は、ループが発生しないようにするだけです。間違ってください


多くの外国のコードでは、4 つまたは 5 つの連続した

が見られることがわかります。おそらく、thinkphp はテンプレートを解析するときに文字列の最初の \ のみを変換し、残りは文字列として扱われます。
ありがとうございます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート