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 はテンプレートを解析するときに文字列の最初の \ のみを変換し、残りは文字列として扱われます。
ありがとうございます。