ホームページ  >  記事  >  ウェブフロントエンド  >  トマトのフォーム検証コードが変更された version_form 効果

トマトのフォーム検証コードが変更された version_form 効果

WBOY
WBOYオリジナル
2016-05-16 19:02:521173ブラウズ

私はこれを個人プロジェクトのバックグラウンド処理で使用しています。これは簡単なフォームの検証に非常に便利です。
コードが肥大化しすぎたくないので、あまり使われない機能や追加されていない機能がたくさんあります。
佛山からの意見に変更はありません。私は怠け者なので、笑
今日、omeweb もバージョンを修正し、多くの変更を加えているのを見ましたが、その変更は非常に優れています、ありがとう。

ソース コードは次のとおりです:

//文字列の両側のスペースを削除します
String.prototype.trim = function () {
return this.replace(/ (^s ) |(s $)/g, "");
}
//文字列が空かどうかを確認します
String.prototype.isEmpty = function () {
return !( /.?[ ^s ] /.test(this));
}
//値が指定された 2 つの値の間にあるかどうかを確認します
String.prototype.isBetween = function (val, min, max) {
return isNaN(val) == false && val >= min && val }
//最大値または最小値を取得します
String.prototype.getBetweenVal = function (何) {
var val = this.split(',');
var min = val[0];
var max = val[1] == null ? [1 ];
if (parseInt(min) > parseInt(max)) {
min = max;
max = val[0] }
return what == 'min ' ? (isNaN(min) ? null : min) : (isNaN(max) ? null : max);
}
var validator = function (formObj) {
this.allTags = formObj.getElementsByTagName( '* ');
//文字列検証正規表現
this.reg = new Object();
this.reg.english = /^[a-zA-Z0-9_-] $/;
this.reg.chinese = /^[u0391-uFFE5] $/;
this.reg.number = /^[- ]?d (.d )?$/;
this.reg.整数 = /^[- ]?d $/;
this.reg.float = /^[- ]?d (.d )?$/;
this.reg.date = /^(d{ 4})(-|/)(d{1,2})2(d{1,2})$/;
this.reg.email = /^w ([- .]w )*@w ([-.]w )*.w ([-.]w )*$/;
this.reg.url = /^(((ht|f)tp(s?))://)[ a-zA-Z0-9] .[a-zA-Z0-9] [/=?%-&_~`@[]
': !]*([^
""])*$ /; this.reg.phone = /^(((d{2,3}))|(d{3}-))?((0d{2,3})|0d{2,3} -)?[1-9]d{6,7}(-d
{1,4})?$/;
this.reg.mobile = /^(((d{2,3} ))|(d{3}-))?((13d{9})|(159d{8}))$/;
this.reg.ip = /^(0|[1-9]d ?|[0-1]d{2}|2[0-4]d|25[0-5]).(0|[1-9]d?|[0-1]d{2}|2 [0-4]
d|25[0-5]).(0|[1-9]d?|[0-1]d{2}|2[0-4]d|25[0 -5]).(0|[1-9]d?|[0-1]d{2}|2[0-4]d|25[0-
5])$/; this.reg.zipcode = /^[1-9]d{5}$/;
this.reg.qq = /^[1-9]d{4,10}$/; reg.msn = /^w ([- .]w )*@w ([-.]w )*.w ([-.]w )*$/;
this.reg.idcard = /(^ d{15}$)|(^d{17}[0-9Xx]$)/;
//エラー出力情報
this.tip = new Object(); = '検証タイプが見つからないため、検証を実行できません。 ';
this.tip.paramError = 'パラメータの設定が間違っているため検証できません。 ';
this.tip.required = '空は許可されません。 ';
this.tip.english = '英語の文字とアンダースコア (a-zA-Z0-9_) のみが使用できます。 ';
this.tip.chinese = '中国語の文字のみを使用できます。 ';
this.tip.number = ' は有効な数値ではありません。 ';
this.tip.integer = ' は有効な整数ではありません。 ';
this.tip.float = '有効な浮動小数点数ではありません。 ';
this.tip.date = '有効な日付形式ではありません。 (例: 2007-06-29)';
this.tip.email = '有効な電子メール形式ではありません。 ';
this.tip.url = '有効なハイパーリンク形式ではありません。';
this.tip.phone = '有効な電話番号ではありません。 ';
this.tip.mobile = '有効な携帯電話番号ではありません。 ';
this.tip.ip = '有効な IP アドレスではありません。 ';
this.tip.zipcode = '有効な郵便番号ではありません。 ';
this.tip.qq = '有効な QQ 番号ではありません。 ';
this.tip.msn = '有効な MSN アカウントではありません。 ';
this.tip.idcard = '有効な ID 番号ではありません。';
//コントロール名を取得します
this.getControlName = function ()
{
return this.element.getAttribute('controlName') == null
'値を指定しますコントロールの「
(); {}
}
//境界線の色を設定します
this.setBorderColor = function (ele) {
var borderColor = ele.currentStyle ?
ele.currentStyle.borderColor = '#ff9900';
ele.onkeyup = function () {
this.style.borderColor = borderColor;
}
//エラーフィードバック情報を出力します
this.feedback = function (type) {
try > var msg = eval('this.tip.' type) == 未定義
type:
this.getControlName() eval('this.tip.' type); } catch (e) {
msg = type;
this.setBorderColor(this.element); alert(msg);
this.setFocus(this.element) };
//文字列検証を実行します
this.validate = function () {
var v = this.element.value;
//空以外が許可されているかどうかを確認します
var required = this.element.getAttribute ('required');
if (required != null && v.isEmpty()) {
this .フィードバック('必須');
戻り値
}
//形式が正しいかどうかを確認します
var dataType = this.element.getAttribute('dataType');
if (!v.isEmpty() && dataType != null && dataType.toLowerCase() != 'パスワード') {
dataType = dataType.toLowerCase();
try {
if (!(eval('this.reg.' dataType)).test(v)) {
This .フィードバック(dataType);
return false; }
// データ検証を実行します
var verify = this.element.getAttribute('confirm'); (確認してください!= null){
try {
var data = eval( 'formobj。balue');');
this.setBorderColor(this.element);
this.setFocus(this.element);
falseを返します。

} catch (e) {
this.フィードバック('paramError');
falseを返します。
}
}
//验证数字大小
var dataBetween = this.element.getAttribute('dataBetween');
if (!v.isEmpty() && dataBetween != null) {
var min = dataBetween.getBetweenVal('min');
var max = dataBetween.getBetweenVal('max');
if (min == null || max == null) {
this.フィードバック('paramError');
falseを返します。
}
if (!v.isBetween(v.trim(), min, max)) {
this.フィードバック(this.getControlName() ' 必ず必要です ' min '-最大 」
の間の数字。');
falseを返します。
}
}
//验证文字长度
var dataLength = this.element.getAttribute('dataLength');
if (!v.isEmpty() && dataLength != null) {
var min = dataLength.getBetweenVal('min');
var max = dataLength.getBetweenVal('max');
if (min == null || max == null) {
this.フィードバック('paramError');
falseを返します。
}
if (!v.isBetween(v.trim().length, min, max)) {
this.フィードバック(this.getControlName() '必须是 ' min '-'最大 」 1 文字
。');
falseを返します。
}
}
trueを返します。
};
//执実行初期化操作
this.init = function () {
for (var i=0; i if (this.allTags[i ].tagName.toUpperCase() == 'INPUT' ||
this.allTags[i].tagName.toUpperCase() == 'SELECT' ||
this.allTags[i].tagName.toUpperCase( ) == 'TEXTAREA')
{
this.element = allTags[i];
if (!this.validate())
return false;
}
}
};
return this.init();
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。